我有一张这样的桌子;
+----+---------+-------------+
| 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 |
+----+---------+-------------+
有很多屏幕宽度,但其中 90% 等于 5 个值之一。
使用如下查询:
SELECT screenwidth
, COUNT(DISTINCT user_id) AS screenwidthcount
FROM screenwidth
GROUP BY screenwidth
ORDER BY screenwidthcount;
(感谢我如何只计算第一次出现的值?)
我对 screenWidth 发生的次数有一个很好的计数,每个用户只计算一次。
有没有办法计算最流行的屏幕宽度,然后将所有其他屏幕宽度收集在一个名为“其他”的类别中 - 也就是说,上面的查询不是返回大量行,而是返回 6,前 5 是前 5它当前返回,第 6 个被称为 other 其余值的总和?