我想从我的表中选择所有不同的order_id,并按日期列排序该列表。使用DISTINCT当然是一个查询范围的参数,所以尝试这样的东西不起作用:
SELECT DISTINCT(orderId, datetime)
FROM table
ORDER BY datetime DESC
这会返回orderId和datetime的所有DISTINCT组合,所以我留下了多个orderIds,这是我不想要的。因此,我认为DISTINCT条款不是要走的路。有没有人对如何解决这个问题有任何建议?
谢谢!
答案 0 :(得分:21)
如果订单有多行,您要显示哪个日期?也许:
SELECT [orderId], MAX([datetime])
FROM [table]
GROUP BY [orderId]
ORDER BY MAX([datetime]) DESC
答案 1 :(得分:3)
也许CTE会有所帮助:
WITH CTE
AS
(
SELECT orderId FROM table ORDER BY datetime DESC
)
SELECT DISTINCT orderId FROM CTE
答案 2 :(得分:-1)
SELECT DISTINCT * FROM
(SELECT value1
FROM table1
ORDER BY value2);
这对我有用。