Mysql 对行进行计数和求和

Mysql Count and Sum Rows

我有一个 mysql 查询(由 sagi 创建):-

 SELECT       'blr' AS Location,       COUNT(*) AS playCnt,       (select count(*) from blr_skip WHERE blr_skip_dt like '%2016-03-20%') as skipCnt FROM  blr_play  WHERE blr_play_dt like '%2016-03-20%' UNION SELECT       'chen' AS Location,       COUNT(*) AS playCnt,       (select count(*) from chen_skip WHERE chen_skip_dt like '%2016-03-20%') as skipCnt FROM  chen_play  WHERE chen_play_dt like '%2016-03-20%';

输出如下:-

 +----------+---------+---------+
 | Location | playCnt | skipCnt |
 +----------+---------+---------+
 | blr      |      25 |       8 |
 | chen     |      12 |       1 |
 +----------+---------+---------+

我想在列的末尾再添加一行总计,如下所示:-

 +----------+---------+---------+
 | Location | playCnt | skipCnt |
 +----------+---------+---------+
 | blr      |      25 |       8 |
 | chen     |      12 |       1 |
 +----------+---------+---------+
 |Total     |      37 |       9 |
 +----------+---------+---------+

试试这个:

SELECT
    IFNULL(Location, 'Total') AS Location,
    SUM(playCnt) AS playCnt,
    SUM(skipCnt) AS playCnt
FROM
(
    SELECT       'blr' AS Location,       COUNT(*) AS playCnt,       (select count(*) from blr_skip WHERE blr_skip_dt like '%2016-03-20%') as skipCnt 
    FROM  blr_play  
    WHERE blr_play_dt like '%2016-03-20%' 
    UNION 
    SELECT       'chen' AS Location,       COUNT(*) AS playCnt,       (select count(*) from chen_skip WHERE chen_skip_dt like '%2016-03-20%') as skipCnt 
    FROM  chen_play  
    WHERE chen_play_dt like '%2016-03-20%'
) t1
GROUP BY Location WITH ROLLUP;