在sql统计过程中,需要统计某个字段不重复的条数,怎么样准确统计到呢?
如果我们需要统计group by 后的数据:
SELECT COUNT(*) FROM test_users WHERE 1 = 1 GROUP BY hotel_id
那么得到的结果是:
COUNT(*)
1
2
4
1
说明统计的是同一个hotel_id中有多少条记录,所以有上面的情况,而我们需要的是group by后的条数,应该是4条。
所以应该写成下面的形式即可
SELECT COUNT(DISTINCT hotel_id) FROM test_users WHERE 1 = 1
那么得到的结果是:
COUNT(*)
4