在SQL中使用GROUP BY进行查询时如何选择第一组中的所有条目?

时间:2017-03-08 08:38:39

标签: sql django-queryset

以以下数据集Demo为例:

attr_A    attr_B
0         8
1         6
2         6
2         8
3         6

这是我的问题,当我应用SELECT * FROM Demo GROUP BY attr_B ORDER BY attr_B等SQL语句时,如何选择第一组中的所有条目?相应的查询结果应为:

attr_A   attr_B
1         6
2         6
3         6

P.S。在这里,我还使用django-queryset进行标记,因为我当前的项目适用django,但我认为如果我知道如何在SQL中执行此操作,那么在django中实现它并不困难。因此,我的问题标题和描述只包含SQL问题。

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM Demo
WHERE attr_B = (SELECT MIN(attr_B) FROM Demo)

如果要选择所有条目

,则不需要GROUP BY子句

答案 1 :(得分:1)

这是在SQL中执行此操作的一种方法:

int * const numbers = vPtr;

如果您的RDBMS支持窗口功能,那么您可以使用SELECT * FROM Demo WHERE attr_B = (SELECT MIN(attr_B) FROM Demo)

RANK