Как получить общее количество после группировки по [дубликату]

0
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, результаты будут такими: введите описание изображения здесь. Как сделать так, чтобы он получал итоговый результат, например, выше: введите описание изображения здесь.

  • 0
    использовать сумму (клиент) как общее
Теги:
phpmyadmin

5 ответов

0

01) С ROLLUP, как объяснено в других ответах

02) Используйте Union Query

  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)
0

Использовать 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;
0

Используйте объединение всех:

'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)'
0

Используйте 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;
0

Сделайте еще один запрос поверх вашего запроса, как показано ниже:

Select sum(customer) as Total
FROM
(
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
)a;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню