我的数据库中有以下数据:
|NO | model | date | +---+-------+----------+ |1 | bee |2011-12-01| |2 | bee |2011-12-05| |3 | bee |2011-12-12| |4 | tar |2011-12-13| 我想获取每个模型组的最新日期:
| model | date | +-------+----------+ | bee |2011-12-12| | tar |2011-12-13| 我试过了:
SELECT model, date FROM doc WHERE date ........????? //what is the next? GROUP BY model
您是否正在寻找每种型号的最长日期?
SELECT model, max(date) FROM doc GROUP BY model 如果您要查找与整个表格的最大日期匹配的所有模型...
SELECT model, date FROM doc WHERE date IN (SELECT max(date) FROM doc) [ - - 添加 - -]
对于那些希望显示与每个模型组中的最新日期匹配的每个记录的详细信息(而不是OP中要求的摘要数据)的人员:
SELECT d.model, d.date, d.color, d.etc FROM doc d WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model) MySQL 8.0和更高版本支持该OVER子句,对于较大的数据集,产生相同结果的速度要快一些。
SELECT model, date, color, etc FROM (SELECT model, date, color, etc, max(date) OVER (PARTITION BY model) max_date FROM doc) predoc WHERE date=max_date;来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。