たとえば、このテーブルが与えられた
id | カテゴリー
1 | 10
2 | 10
3 | 10
4 | 10
5 | 20
6 | 20
7 | 20
8 | 30
9 | 30
10 | 30
11 | 30
各カテゴリから最初の2つの小さなIDを取得する必要があります。つまり、この結果が必要です。
1
2
5
6
8
9
私はこの質問と彼の作品を書きます
SELECT MIN(id) AS id FROM mytable GROUP BY category
UNION
SELECT MIN(id) AS id FROM mytable WHERE
id NOT IN (SELECT MIN(id) AS id FROM mytable GROUP BY category) GROUP BY category
ORDER BY id
ただし、ここに1つの問題があります。これは、各カテゴリの最初の2つのIDが必要な場合に機能しますが、各カテゴリの最初の小さなID(たとえば、7)が必要な場合、クエリは非常に困難になります。誰かがアイデアを持っています、どうすればこれを簡単にすることができますか?