sql(1):数据的统计

一、相同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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值