我的问题是:
我的数据库有3列,其条目如下:
1|Tom |1
2|Lucy |1
3|Frank |2
4|Jane |3
5|Robert|3
现在我想要这样的输出:
1|Tom |1
3|Frank |2
4|Jane |3
这意味着在每个组(在本例中为第三列)中第一列的最低条目。
有人可以帮忙吗?
答案 0 :(得分:4)
您需要的是具有分组的相关子查询。
一种易于遵循的方法是:
SELECT column1, name, column2
FROM MyTable as mt1
WHERE column1 in (SELECT Min(column1) FROM MyTable as mt2 GROUP BY column2)
但是更好,更清洁的方式:
SELECT column1, name, column2
FROM MyTable as mt1
INNER JOIN
(SELECT Min(column1) as minc1 FROM MyTable as mt2 GROUP BY column2) as mt2
ON mt1.column1=mt2.minc1;
注意:大多数DBMS都应支持这两种形式。