假设:
timestamp | col1 | col2
============================
xx abc 5
yy abc 4
zz def 7
rr def 6
SELECT timestamp,col1,min(col2)
FROM table
GROUP BY col1
ORDER BY min(col2) ASC
返回:
xx abc 4
zz def 6
时间戳似乎搞砸了,所以我确信我没有按照预期的方式使用群组。我怎么得到:
yy abc 4
rr def 6
答案 0 :(得分:2)
对于保证行为,您必须在聚合表达式或GROUP BY子句中具有timestamp字段。如果你不这样做(如你的例子),那么返回的值是不确定的(实际上几乎随机选择)。
相反,你可以分两步完成,所以永远不要选择“randonly”字段...
SELECT
*
FROM
yourTable
INNER JOIN
(SELECT col1, MAX(col2) as max_col2 FROM yourTable GROUP BY col1) AS lookup
ON yourtable.col1 = lookup.col1
AND yourtable.col2 = lookup.col2