[英]MYSQL - Grouping & Max?
我有一个产生以下结果的表:
userid statusid no name area month year dateupdated
62 2 763 ABCD Brazil 6 2013 2013-11-26 15:28
62 1 869 ABC Brazil 7 2012 2013-11-26 15:10
62 2 869 ABC Brazil 6 2013 2013-11-26 15:28
62 1 869 ABC Brazil 6 2013 2013-11-26 14:50
61 1 763 ABCD Brazil 6 2013 2013-11-26 14:50
54 1 200 ABCDE US 12 2013 2013-11-26 21:02
32 2 200 ABCDE US 12 2013 2013-11-26 21:03
我希望能够显示每行的最新“否”。 我尝试使用max(dateupdated)
,但仍显示所有记录。 我也尝试过分组,但也没有运气。
我只需要查看由dateupdated
确定的最新记录。
谁能帮我吗?
我不确定我是否理解您的问题,但是您可能会受到如下帮助:
select * from mytable where dateupdated = (select max(dateupdated) from mytable);
编辑:
根据您的说明,在这种情况下,您需要一个相关的子查询。 我没有尝试过,但是也许是这样的:
select *
from mytable a
where dateupdated = (select max(dateupdated) from mytable where no = a.no);
或这个:
SELECT *
FROM table
ORDER BY dateupdated DESC
LIMIT 1;
最后一次拒绝:(这是您想要的吗?)
SELECT *
FROM table t1
WHERE NOT EXISTS(SELECT * FROM table t2
WHERE t1.no = t2.no
AND t2.dateupdated > t1.dateupdated)
沿LIMIT 1标记; 在查询末尾,并按降序排序。
查询:
SELECT t1.*
FROM Table1 t1
LEFT JOIN Table1 t2 ON t2.dateupdated > t1.dateupdated
AND t1.no = t2.no
WHERE t2.no IS NULL
结果:
| USERID | STATUSID | NO | NAME | AREA | MONTH | YEAR | DATEUPDATED |
|--------|----------|-----|-------|--------|-------|------|---------------------------------|
| 62 | 2 | 763 | ABCD | Brazil | 6 | 2013 | November, 26 2013 15:28:00+0000 |
| 62 | 2 | 869 | ABC | Brazil | 6 | 2013 | November, 26 2013 15:28:00+0000 |
| 32 | 2 | 200 | ABCDE | US | 12 | 2013 | November, 26 2013 21:03:00+0000 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.