世界上最伟大的投资就是投资自己的教育

首页Ruby
Mikasa·Ackerman · 凡人

SQL 分类统计

Mikasa·Ackerman发布于5044 次阅读

假设有一张表 users, 其中 category 字段表示用户的类型,假设 99 代表管理员,1 代表门店,2 代表工厂,当我们要统计 每个类型的人数的时候可以这样统计

select 
  sum(case when category=99 then 1 end) as 'admin', 
  sum(case when category=1 then 1 end) as 'formal',
  sum(case when category=2 then 1 end) as 'factory'
from users 

如果不使用分类统计的话可能要将用户查询出来进行遍历叠加的方式算出每种类型的人有多少个

admin   formal   factory
8        1846       28

用分类统计一条 SQL 就可以统计出结果。

本站文章均为原创内容,如需转载请注明出处,谢谢。

4 条回复
  • 随风 · 练气
    随风 · 练气 #1

    这个语句曾经使用过,比用 ruby 的语法来判断效率高太多

  • Mikasa·Ackerman · 凡人

    是的呢 做分类统计用这个比较合适,不然会出现大量的遍历。

  • RichardTibco · 化神

    select
    count(*) as sum,
    case
    when category=99 then 'admin'
    when category=1 then 'formal'
    when category=2 then 'factory'
    else category
    end
    from users
    group by category;

  • Mikasa·Ackerman · 凡人

    👍

喜欢
统计信息
    学员: 25600
    视频数量: 1656
    文章数量: 485

© 汕尾市求知科技有限公司 | Rails365 Gitlab | Qiuzhi99 Gitlab | 知乎 | b 站 | 搜索

粤公网安备 44152102000088号粤公网安备 44152102000088号 | 粤ICP备19038915号

Top