このようなテーブルがあります。
+----+---------+-------------+
| id | user_id | screenWidth |
+----+---------+-------------+
| 1 | 1 | 1366 |
| 2 | 1 | 1366 |
| 3 | 1 | 1366 |
| 4 | 1 | 1366 |
| 5 | 2 | 1920 |
| 6 | 2 | 1920 |
| 7 | 3 | 1920 |
| 8 | 4 | 1280 |
| 9 | 5 | 1280 |
| 10 | 6 | 1280 |
| 11 | 7 | 1890 |
| ...| ... | ... |
| ...| ... | ... |
| ...| ... | ... |
| 100| 6 | 1910 |
+----+---------+-------------+
多くの screenWidths がありますが、それらの 90% は 5 つの値のいずれかと同じです。
次のようなクエリを使用します。
SELECT screenwidth
, COUNT(DISTINCT user_id) AS screenwidthcount
FROM screenwidth
GROUP BY screenwidth
ORDER BY screenwidthcount;
(値の最初の出現のみをカウントするにはどうすればよいですか?からの感謝)
screenWidth が発生した回数は、ユーザーごとに 1 回だけカウントされます。
最も人気のある screenWidths をカウントし、「その他」と呼ばれるカテゴリ内の他のすべてを収集する方法はありますか? つまり、上記のクエリが大量の行を返す代わりに、6 を返します。現在、6 番目は、残りの値の合計で other と呼ばれていますか?