MySQL - 使用GROUP BY和DESC
问题描述:
在我的SQL查询中,我选择的数据与GROUP BY和ORDER BY条款。该表在多行中具有相同的numbers
,每行中具有不同的时间。所以我想我想申请GROUP BY条款。MySQL - 使用GROUP BY和DESC
然而,在结果返回与数字最古老的时间,但我需要最近的时间。
SELECT * FROM TABLE GROUP BY (numbers) ORDER BY time DESC
查询看起来好像应该先申请GROUP BY然后ORDER BY ......但结果似乎并没有以这种方式工作。
有什么办法解决这个问题吗?
答
SELECT *
FROM table t
WHERE time = (
SELECT max(time)
FROM table
WHERE t.numbers = numbers
)
答
SELECT * FROM TABLE GROUP BY numbers DESC;
这会给你从组最后一个记录。
由于
+0
这不能回答这个问题。他们想在分组之前订购。 –
答
据可以通过列表中添加递减到组中的手册: 示例:
组由ITEM1,ITEM2 DESC,项目3
具有或不汇总。
我试过这个,它在Ubuntu 5.5.58版本中有效。参考页面为: https://dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html
[在文档](http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html)中,如果您选择未分组的列在每个组具有多个值的情况下显式调出为“不确定”。你不能依赖任何特定的行为。你需要整行还是'数字,最大值(时间)' –
你能提供一些数据与你期望的结果吗? –
谢谢你们,你让我朝着正确的方向前进。 – user1946705