我有一张这样的桌子;
+----+---------+-------------+
| 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 |
+----+---------+-------------+
以及大量其他数据。如果需要的话可以将其标准化,最初我认为我不需要,但也许我应该这样做。反正,
我想要一个只计算每个用户一次 screenWidth 值的查询,因此输出如下所示:
+-------------+-------+
| screenWidth | count |
+-------------+-------+
| 1366 | 1 |
| 1920 | 2 |
| 1280 | 3 |
+-------------+-------+
不要将 1366 算作 4,这样可以避免大量用户扭曲数据。
有没有办法编写一个查询来做到这一点?
简短而简单:使用COUNT DISTINCT http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_count-distinct:
SELECT
screenWidth,
COUNT(DISTINCT user_id)
FROM
mytable
GROUP BY
screenWidth;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)