+ -
当前位置:首页 → 问答吧 → 请教一个SQL

请教一个SQL

时间:2011-11-29

来源:互联网

表名: USERTABLE,字段NAME(名称),MODEL(型号),TYPE(类型),CNT(用户数)
表数据大概如下:
  NAME MODEL TYPE CNT
  name1 model1 A 1000
  name2 model2 B 2000
  name3 model3 C 3000
  name1 model1 B 4000
  name1 model1 B 4000
  name1 model1 C 8000

想统计出哪种名称和型号的用户数排名前十的数据,结果如:
  NAME MODEL TYPEA(类型为A的用户数) TYPEB(类型为B的用户数) TYPEC(类型为C的用户数) 总数

有无办法一次性写出来,高手指教

作者: sklyn1984   发布时间: 2011-11-29

SQL code

 select t.name,t.model,
  (select sum(cnt) from usertable where name = t.name and type = 'A') A,
  (select sum(cnt) from usertable where name = t.name and type = 'B') B,
  (select sum(cnt) from usertable where name = t.name and type = 'C') C
  from usertable t 
  group by t.name,t.model 


如果你的类型只有A、B、C那么这样木有问题!!!

作者: hzw2312   发布时间: 2011-11-29

热门下载

更多