繁体   English   中英

MYSQL-分组和上限?

[英]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标记; 在查询末尾,并按降序排序。

查询:

SQLFIDDLEExample

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM