首页 > 解决方案 > Mysql:通过不同的值循环创建具有各种选择的过程

问题描述

我有一张这样的桌子

TIME  |STRCOUNTRY |STROPERATOR | NINCOMINGCALLS
300718|RUSSIA     |MTS         | 2
300718|RUSSIA     |Megafon     | 3
300718|UK         |Vodafone    | 1
300718|UK         |UKTele      | 3

这是我要展示的结尾:呼叫运营商,按国家/地区汇总所有运营商

RUSSIA  |Megafon |  3
RUSSIA  |MTS     |  2
RUSSIA  |#       |  5
UK      |Vodafone|  1
UK      |UKTele  |  3
UK      |#       |  4
#       | #      | 9

可以通过这样的查询接收

select * from TM_COMMON_STAT where strCountry = "RUSSIA" and TIME = "300718"

UNION


select STRCOUNTRY, '#' as STROPERATOR, SUM(NINCOMINGCALLS) as 'NINCOMINGCALLS' from TM_COMMON_STAT where strCountry = "RUSSIA" and TIME = "300718"

如何获得表中所有运算符的输出(不同的 STRCOUNTRY + STROPERATOR)并最终获得所有国家/地区的最终总和(其中运算符 = #)?

谢谢您的帮助。

标签: mysqlaggregate-functionsrollup

解决方案


这是一份工作GROUP BY...WITH ROLLUP

尝试这个

SELECT STRCOUNTRY, STROPERATOR, SUM(NINCOMINGCALLS) NINCOMINGCALLS
  FROM TM_COMMON_STAT
 WHERE <<<whatever filters you require >>>
 GROUP BY STRCOUNTRY, STROPERATOR WITH ROLLUP

推荐阅读