Подсчет с делом - PullRequest
       4

Подсчет с делом

0 голосов
/ 06 февраля 2020

Я написал запрос, предназначенный для подсчета записей и возврата агрегированных результатов. Моя цель - подсчитать количество типов в CASE, которое я написал.

SELECT 
  SUM(CASE WHEN ot.type = 1 THEN 'Card' WHEN ot.type = 2 THEN 'Cash' END) AS type, 
  YEAR(t.date) AS YEAR, 
  MONTH(t.date) AS MONTH, 
  COUNT(t.proccessed_id) 
FROM 
  transactions t 
  JOIN order_transactions ot ON t.id = ot.order_id 
WHERE 
  AND ot.type IN (1,2) 
  AND YEAR(t.date) = '2017' 
GROUP BY
  YEAR(t.date), 
  MONTH(t.date)

Как подсчитать количество записей, возвращенных из моей суммы (CASE?

)

1 Ответ

0 голосов
/ 06 февраля 2020

Ваш запрос пытается суммировать строки ('Cash' или 'Card'). Это не имеет смысла для вашей базы данных.

Я думаю, что вы хотите подсчитать каждый тип транзакции в двух разных столбцах. Вы можете сделать это с помощью таких выражений, как:

select
    sum(ot.type = 1) cnt_card,
    sum(ot.type = 2) cnt_cash,
    year(t.date) as year, 
    month(t.date) as month, 
    count(t.proccessed_id)
from
-- ... the rest of your query
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...