我在DB2中有这个表:
+----+-----+----------+
| id | name| key |
+----+-----+----------+
| 1 | foo |111000 |
| 2 | bar |111000 |
| 3 | foo |000111 |
+----+-----+----------+
当我按名称分组时,我可以提取按名称分组的表格,但是如何自动仅提取第一组,以获得此结果:
+----+-----+----------+
| id | name| key |
+----+-----+----------+
| 1 | foo |111000 |
| 3 | foo |000111 |
+----+-----+----------+
我该如何解决这个问题?
答案 0 :(得分:1)
MIN
函数将通过id识别哪一行是第一行,然后您可以使用它来过滤结果以仅显示该行。
SELECT id,name,key
FROM Table1
WHERE id IN (SELECT MIN(ID) FROM Table1 GROUP BY name,key)
答案 1 :(得分:1)
您可以在由min id聚合的subselect上使用内部联接
select * from mytable
inner join (
select min(id) my_id
from mytable
group by name, key
) t on t.my_id = mytable.id