У меня есть следующая проблема на работе. У меня большой стол с разными столбцами и несколькими 100 000 строк. Я только вывешиваем те им заинтересованы.Как ограничить результаты SQLite для определенной группы результатов?
Предположим следующие набор данных
ID устройства, Feature 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
мне нужно выбрать строки с функцией Status = 1, но только первые 2 из каждого идентификатора устройства.
Результаты запроса должны быть:
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 или COunt (*) и некоторых вложенных выборок, но я не могу понять это. Благодаря
Почему тег MySQL? –
Потому что я понял, что люди, знающие SQL и использующие MySql, могут помочь. Почему нет? Это вопрос, связанный с базой данных, даже специфический для Sqlite, опыт перекрестного взаимодействия может работать –