免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4754 | 回复: 2
打印 上一主题 下一主题

新手求助 怎么将2个表里的数据相加合并然后group by排列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-17 14:00 |只看该作者 |倒序浏览
gamedb1.accountlist gamedb2.accountlist 这2个表在不同的库中,结构完全一样;
表中每行存储一个用户的数据
数据需求是统计这个表中等级分布:就用到一个字段 level
mysql> select level,count(level) num from gamedb1.accountlist group by level;
+-------+--------+
|  level |   num  |
+-------+--------+
|    0    |      1   |
|    1    |      1   |
|    2    |      3   |
+-------+--------+

mysql> select level,count(level) num from gamedb2.accountlist group by level;
+-------+--------+
|  level  |  num  |
+-------+--------+
|    0    |     2    |
|    1    |     3    |
|    2    |     4    |
+-------+--------+

然后想把这些合并起来写了个
mysql> select tg.level,tg.num from (select level,count(level) num from gamedb1.accountlist group by level union all select level,count(level) num from gamedb2.accountlist group by level) tg;
+-------+--------+
|  level  |  num  |
+-------+--------+
|    0    |      1   |
|    1    |      1   |
|    2    |      3   |
|    0    |      2   |
|    1    |      3   |
|    2    |      4   |
+-------+--------+

但是这样还是不符合数据需求,本人新手搞不大来了,求帮助

理想中的显示结果是:把1和2中的num相加
+-------+--------+
|  level  |  num  |
+-------+--------+
|    0    |     3    |
|    1    |     4    |
|    2    |     7    |
+-------+--------+

论坛徽章:
0
2 [报告]
发表于 2012-05-17 14:17 |只看该作者
  1. mysql> select * from gamedb1.accountlist ;
  2. +-------+
  3. | level |
  4. +-------+
  5. |     5 |
  6. |     1 |
  7. |     2 |
  8. |     3 |
  9. |     4 |
  10. |     3 |
  11. +-------+
复制代码
  1. mysql> select * from gamedb2.accountlist ;
  2. +-------+
  3. | level |
  4. +-------+
  5. |     1 |
  6. |     2 |
  7. |     3 |
  8. |     2 |
  9. |     4 |
  10. |     3 |
  11. |     1 |
  12. |     5 |
  13. +-------+
复制代码
  1. mysql> select level,sum(cn) from (select level,count(*) as cn from gamedb1.accountlist group by level union all  select level,count(*) as cn  from gamedb2.accountlist group by level) tmp group by level;
  2. +-------+---------+
  3. | level | sum(cn) |
  4. +-------+---------+
  5. |     1 |       3 |
  6. |     2 |       3 |
  7. |     3 |       4 |
  8. |     4 |       2 |
  9. |     5 |       2 |
  10. +-------+---------+
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-05-17 14:27 |只看该作者
回复 2# 龙雪刚
非常非常感谢


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP