【问题标题】:How to get total after Group By [duplicate]Group By后如何获得总数[重复]
【发布时间】:2018-11-16 04:15:51
【问题描述】:
SELECT COUNT(*) AS customer, t.state
  FROM tbl_parcel_item t
 WHERE t.courier_name='Tnt'
   AND t.date = '2018-03-12'
   AND t.ship_status NOT IN (0,1,9,10)
 GROUP BY t.state`

根据上面的 sql,结果将是: enter image description here 如何使其获得上述结果的总和,例如: enter image description here

【问题讨论】:

  • 使用 sum(customer) 作为总数

标签: mysql sql phpmyadmin


【解决方案1】:

使用with rollup:

SELECT COUNT(*) AS customer, t.state`
FROM tbl_parcel_item t
WHERE t.courier_name = 'Tnt' AND
      t.date = '2018-03-12' AND
      t.ship_status NOT IN (0, 1, 9, 10)
GROUP BY t.state WITH ROLLUP;

【讨论】:

    【解决方案2】:

    全部使用联合:

    `SELECT COUNT(*) AS customer, t.state`
    `FROM tbl_parcel_item t`
    `WHERE t.courier_name='Tnt'`
    `AND t.date = '2018-03-12'`
    `AND t.ship_status NOT IN (0,1,9,10)`
    `GROUP BY t.state`
    `UNION ALL`
    `SELECT COUNT(*) AS customer, 'Total' as state`
    `FROM tbl_parcel_item t`
    `WHERE t.courier_name='Tnt'`
    `AND t.date = '2018-03-12'`
    `AND t.ship_status NOT IN (0,1,9,10)`
    

    【讨论】:

      【解决方案3】:

      使用ROLLUP:

      SELECT
          COALESCE(t.state, 'TOTAL') AS state,
          COUNT(*) AS customer
      FROM tbl_parcel_item t
      WHERE
          t.courier_name = 'Tnt' AND
          t.date = '2018-03-12'  AND
          t.ship_status NOT IN (0,1,9,10)
      GROUP BY t.state WITH ROLLUP;
      

      【讨论】:

        【解决方案4】:

        01) WITH ROLLUP 如其他答案中所述

        02) 使用联合查询

          SELECT  t.state, COUNT(*) AS customer FROM tbl_parcel_item t WHERE t.courier_name='Tnt' AND t.date = '2018-03-12' AND t.ship_status NOT IN (0,1,9,10) GROUP BY t.state
          UNION 
          SELECT  'Total', COUNT(*) AS customer FROM tbl_parcel_item t WHERE t.courier_name='Tnt' AND t.date = '2018-03-12' AND t.ship_status NOT IN (0,1,9,10)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多