Выберите группу функций суммы только [РЕДАКТИРОВАНИЕ] - PullRequest
0 голосов
/ 16 мая 2019

Как суммировать функцию только для "group by" без где?

Отредактировано:

Как связать это:

SELECT SUM(sent) FROM cars GROUP BY model_name

с (без где)

Хороший рабочий SQL:

SELECT *
FROM cars 
WHERE status in(0, 1) 
GROUP BY model_name 
HAVING is_ref = 0

Ответы [ 3 ]

0 голосов
/ 16 мая 2019

вот один путь -

SELECT c.*
    ,c2.total 
FROM cars c
JOIN (
        SELECT model_name,sum(sent) as total 
        FROM cars 
        GROUP BY model_name
        ) c2
    ON c.model_name = c2.model_name

WHERE status in(0, 1) AND is_ref = 0
0 голосов
/ 17 мая 2019

Вы ищете что-то вроде этого -

SELECT model_name,
SUM
(
    CASE 
        WHEN (status IN(0, 1) AND is_ref = 0)  THEN sent 
        ELSE 0 
    END
) [Total]
FROM cars 
GROUP BY model_name
0 голосов
/ 16 мая 2019

Это должно быть то, что вы после. Просто выберите столбец, по которому вы хотите сгруппировать, а затем сгруппируйте по этому столбцу. Также, поскольку вы не агрегируете is_ref, вы можете подключить его к предложению where.

SELECT model_name, sum(sent) as total FROM cars WHERE status 
in(0, 1) GROUP BY model_name having is_ref=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...