首页ruby

SQL 分类统计

Marin发布于4130 次阅读

假设有一张表 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 条回复
  • hfpp2012 #1

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

  • Marin #2
    hfpp2012 #10 回复

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

  • RichardTibco #3

    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;

  • Marin #4

    👍

喜欢
友情提示
   官方 QQ 1 群 697272886(500/2000)
   官方 QQ 2 群 856141852

© Rails365 | 隐私条款 | 服务条款 | 友情链接:轻课堂 | 粤ICP备15004902号 | 在线学员:7

Top