我在工作中遇到以下問題。我有一張大桌子,有不同的列和幾十萬行。我只張貼的那些即時通訊感興趣的如何限制每個特定組結果的SQLite結果?
假設以下數據集
設備ID,功能ID,功能狀態
1, 1, 0
1, 2, 0
1, 3, 1
1, 4, 1
1, 5, 1
2, 1, 1
2, 2, 0
2, 3, 0
2, 4, 1
2, 5, 0
3, 1, 1
3, 2, 1
3, 3, 1
3, 4, 1
3, 5, 1
4, 1, 0
4, 2, 0
4, 3, 1
4, 4, 0
4, 5, 0
,我需要選擇與功能狀態行= 1,但只有每個設備ID的前兩位。
查詢的結果應該是:
1,3,1
1,4,1
2,1,1
2,4,1
3,1,1
3,2,1
4,3,1
我想是這樣的:
SELECT brdsurfid,featureidx,FeatStatus FROM Features F1 WHERE FeatStatus = 1 AND
(SELECT COUNT(*) FROM Features F2
WHERE F2.FeatureIdx <= F1.FeatureIdx AND F2.FeatStatus = 1) < 2
ORDER BY BrdSurfId,FeatureIdx;
我在另一響應找到,但它沒有相當的工作。
我知道我需要使用LIMIT或者COUNSE(*)和一些嵌套選擇的混合,但我無法弄清楚它。由於
爲什麼MySQL的標籤? –
因爲我想知道SQL和使用MySql的人可以提供幫助。爲什麼不?這是一個數據庫相關的問題,即使它是Sqlite的具體情況,交叉經驗可能會工作 –