一、相同id个数统计
select count(*),id from ta WHERE group by (id)二、按天统计数据个数
select count(*),DATE_FORMAT(end_time,'%Y-%d-%m') from cpt_end_rec group by year(end_time),month(end_time),day(end_time)这种方法比较通用,也可以按照年、月,日,小时,分钟,秒来统计
三、多列统计
有时候我们需要同时统计多个数据放在一个表里面
-- 统计所有列数,然后是三种类型得到个数 select count(1),sum(case when id='0' then 1 ELSE 0 end) a, sum(case when id='1' then 1 ELSE 0 end) b, sum(case when id='2' then 1 ELSE 0 end) c, sum(case when id='3' then 1 ELSE 0 end) d from person_table group by q_list四、分组内部的排名
按照名字分组,对probability进行排序
SELECT * FROM t_prize m where( select COUNT(*) from t_prize n where m.NAME = n.NAME and n.PROBABILITY > m.PROBABILITY)<2五、多分组数据
解决A字段、对应不同B字段的统计
select A,B,count(1) from t_table group by A,B;六、分组和过滤的先后关系
在查询之前需要先考虑,到底是先分组,还是先筛选条件 如果是先筛选,后分组where+group by 如果是先分组,再筛选group by+having