数据库03 --- group by和count

count() ,count的的是组内的

SELECT count(*)
FROM sys_user u JOIN sys_log_account sla ON u.id=sla.user_id
WHERE u.usertype=3 AND date(sla.login_time) = date(NOW())
GROUP BY u.id
--》

18
26

这样不分组计算的是所有行数。

SELECT count(*)
sys_user u JOIN sys_log_account sla ON u.id=sla.user_id
u.usertype=3 AND date(sla.login_time) = date(NOW())

--》44

 本来想group by 然后count 以为结果会是两条数据,但是结果却是count每一组的。

distinct和group by。

SELECT DISTINCT u.id,count(*)
sys_user u JOIN sys_log_account sla ON u.id=sla.user_id
u.usertype=3 AND date(sla.login_time) = date(NOW())
BY u.id

--》

id count(*)
12 18
13 30

原文地址:https://www.cnblogs.com/kltsee/p/13897872.html