【发布时间】:2017-02-10 11:32:40
【问题描述】:
我有这张桌子:
+----+-----+----------+
| id | name| key |
+----+-----+----------+
| 1 | foo |111000 |
| 2 | bar |111000 |
| 3 | foo |000111 |
+----+-----+----------+
有没有办法按key分组来得到这个结果?
+----+-----+----------+
| id | name| key |
+----+-----+----------+
| 2 | bar |111000 |
| 3 | foo |000111 |
+----+-----+----------+
或者这个结果:
+----+-----+----------+
| id | name| key |
+----+-----+----------+
| 1 | foo |111000 |
| 3 | foo |000111 |
+----+-----+----------+
如果我使用这个查询:
SELECT * FROM sch.mytable GROUP BY(key);
我知道这是不正确的,因为我应该按需要显示的所有列进行分组。
这个问题有解决办法吗?
【问题讨论】:
-
您需要一个聚合函数才能使用分组依据。你的聚合函数是什么?
-
你需要什么聚合函数?平均计数或最小值或最大值或其他任何值
标签: sql postgresql greatest-n-per-group