sql(1):数据的统计

    xiaoxiao2022-07-04  103

    一、相同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
    最新回复(0)