在sqlite中使用group by选择每个组中的第一行

时间:2016-02-18 18:50:20

标签: sqlite group-by

我在sqlite中有一个表。我想要获得每组的第一行。虽然之前有过同样的问题。我无法在sqlite中找到解决方案。

我的表格如下:

select * from geoview
MaxOfStatecountpercent | statepoolnumber | STATECODE
123                       1234              CA
123                       1234              FL
234                       1678              TX
234                       1678              MN
234                       0987              FL
234                       0987              CA
234                       9876              TX

我想从每个statepoolnumber查询MaxOfStatecountpercent的第一个和第一个STATECODE。等效的访问sql查询是:

select first(MaxOfStatecountpercent), statepoolnumber, first(STATECODE) from geoview group by statepoolnumber;

预期的输出是:

First(MaxOfStatecountpercent) | statepoolnumber | First(STATECODE)
123                             1234              CA
234                             1678              TX
234                             0987              FL
234                             9876              TX

我试过"限制1"但没有奏效。如何在sqlite中获得等效的查询?

1 个答案:

答案 0 :(得分:15)

以下内容适用于我的样本表数据:

SELECT MaxOfStatecountpercent, statepoolnumber, STATECODE
FROM geoview
GROUP BY statepoolnumber
HAVING MIN(ROWID)
ORDER BY ROWID

这假定,根据您所需的输入,您希望每个statepoolnumber组的“first”状态为第一个记录(而不是按字母顺序排列的“first”)。