忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 2015 | 回复: 3

mysql查询多次分类count [复制链接]

论坛徽章:
0
发表于 2016-11-30 12:49 |显示全部楼层
原表是这样:
Name
Feature
Category
hardware
aaa
M
X
111
bbb
M
Y
111
ccc
M
X
111
ddd
N
Y
111
eee
N
Y
111
fff
N
X
222

之前用excel pivot做成分类求和的效果:
X
Y
M
111
2
1
N
111
0
2
222
1
0
(表格里的指是符合条件的name的个数)  
请教一下如果我现在用mysql的select语句,怎么才能把原表的数据query出来像表二的结果呢。         

论坛徽章:
89
CU大牛徽章
日期:2013-11-29 22:26:36CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2014-02-21 14:22:02CU大牛徽章
日期:2014-02-21 14:22:07CU大牛徽章
日期:2014-02-21 14:22:09CU大牛徽章
日期:2015-02-28 17:45:342015元宵节徽章
日期:2015-03-06 16:56:38羊年新春福章
日期:2015-02-28 17:42:522015七夕节徽章
日期:2015-09-14 09:24:55CU大牛徽章
日期:2014-02-21 14:22:44CU大牛徽章
日期:2015-02-28 17:48:12CU大牛徽章
日期:2015-02-28 17:47:58
发表于 2016-11-30 17:58 |显示全部楼层
回复 1# miaaa


可以参考一下:
  1. mysql> select * from tb;
  2. +------+---------+----------+----------+
  3. | Name | Feature | Category | hardware |
  4. +------+---------+----------+----------+
  5. | aaa  | M       | X        | 111      |
  6. | bbb  | M       | Y        | 111      |
  7. | ccc  | M       | X        | 111      |
  8. | ddd  | N       | Y        | 111      |
  9. | eee  | N       | Y        | 111      |
  10. | fff  | N       | X        | 222      |
  11. +------+---------+----------+----------+
  12. 6 rows in set

  13. mysql> select Feature, hardware, sum(if(Category = 'X', 1, 0)) as 'X', sum(if(Category = 'Y', 1, 0)) as 'Y'
  14. from tb
  15. group by Feature, hardware;
  16. +---------+----------+---+---+
  17. | Feature | hardware | X | Y |
  18. +---------+----------+---+---+
  19. | M       | 111      | 2 | 1 |
  20. | N       | 111      | 0 | 2 |
  21. | N       | 222      | 1 | 0 |
  22. +---------+----------+---+---+
  23. 3 rows in set

  24. mysql> select ifnull(Feature, "") as "Feature", ifnull(hardware, "") as "hardware", sum(if(Category = 'X', 1, 0)) as 'X', sum(if(Category = 'Y', 1, 0)) as 'Y'
  25. from tb
  26. group by Feature, hardware
  27. with rollup;
  28. +---------+----------+---+---+
  29. | Feature | hardware | X | Y |
  30. +---------+----------+---+---+
  31. | M       | 111      | 2 | 1 |
  32. | M       |          | 2 | 1 |
  33. | N       | 111      | 0 | 2 |
  34. | N       | 222      | 1 | 0 |
  35. | N       |          | 1 | 2 |
  36. |         |          | 3 | 3 |
  37. +---------+----------+---+---+
  38. 6 rows in set
复制代码


论坛徽章:
69
15-16赛季CBA联赛之青岛
日期:2017-05-12 11:03:28数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00操作系统版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-04 06:20:00数据库技术版块每日发帖之星
日期:2016-07-03 06:20:00操作系统版块每日发帖之星
日期:2016-07-03 06:20:00数据库技术版块每日发帖之星
日期:2016-07-02 06:20:00操作系统版块每日发帖之星
日期:2016-07-02 06:20:00每日论坛发贴之星
日期:2016-07-01 06:20:00操作系统版块每日发帖之星
日期:2016-07-01 06:20:00
发表于 2017-02-23 13:56 |显示全部楼层
回复 2# seesea2517


赞赞赞  

论坛徽章:
0
发表于 2017-05-22 20:54 |显示全部楼层
膜拜
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP