我有一个包含 entry_id 和 edit_date 列的表格。我应该使用哪些查询来按 edit_date 按 entry_id 分组的行进行排序?不按SQL术语分组。
现在我会尝试清理我想要的东西:
我有什么
entry_id number
Entry 1 19
Entry 1 10
Entry 1 80
Entry 2 60
Entry 3 83
Entry 4 73
Entry 5 15
Entry 2 26
Entry 2 9
Entry 2 5
Entry 3 95
Entry 2 57
Entry 3 4
Entry 4 88
Entry 2 39
Entry 3 78
Entry 3 4
我需要什么:
entry_id number
Entry 3 95 <- biggest in set
Entry 3 83
Entry 3 78
Entry 3 4
Entry 3 4
Entry 4 88 <- biggest in set
Entry 4 73
Entry 1 80 <- biggest in set
Entry 1 19
Entry 1 10
Entry 2 60 <- biggest in set
Entry 2 57
Entry 2 39
Entry 2 26
Entry 2 9
Entry 2 5
Entry 5 15
谢谢!
答案 0 :(得分:1)
获得结果的一种方法是在集合中包含派生的&#34;最大的&#34;列。
如果你有这样的结果集:
_id number biggest
3 95 95
3 83 95
3 78 95
3 4 95
3 4 95
4 88 88
4 73 88
1 80 80
1 19 80
1 10 80
2 60 60
2 57 60
2 39 60
2 26 60
然后你可以ORDER BY biggest DESC, _id DESC, number DESC
获得&#34;最大奖的一种方式&#34;将使用具有MAX(number)
聚合函数和GROUP BY _id
的查询,并将该查询用作内联视图,并执行连接操作。例如:
SELECT t._id
, t.number
FROM mytable t
JOIN (
SELECT m._id
, MAX(m.number) AS biggest
FROM mytable m
GROUP BY m._id
) b
ON b._id = t._id
ORDER BY b.biggest DESC, t._id DESC, t.number DESC
内联视图查询 b
会返回&#34;最大的&#34;每个_id
的编号。
答案 1 :(得分:-1)
ORDER BY entry_id, number DESC
将按降序排序number
,按entry_id
分组。 entry_id
也将被排序。