Как объединить 2 запроса в 1?

У меня есть два запроса, которые делают одно и то же, но для разных групп.

SELECT count() FROM Table1 WHERE label = 'label1' AND group IN (0) AND date >= '2018-01-01' AND date <= '2018-02-01';

SELECT count() FROM Table1 WHERE label = 'label1' AND group IN (3, 4, 5, 6, 7, 8) AND date >= '2018-03-01' AND date <= '2018-03-01';

Могу ли я разделить его на один запрос?


person Jens    schedule 27.11.2018    source источник
comment
Вы можете использовать UNION ALL. Ссылка   -  person Vidhyut Pandya    schedule 27.11.2018


Ответы (1)


Ты можешь использовать..

UNION ALL

.. между двумя запросами, чтобы получить только один результат. Однако по-прежнему будет два запроса, если вы хотите, чтобы это был один запрос, вы можете использовать CASE WHEN.

SELECT 
    SUM(CASE WHEN group = 0 AND date BETWEEN '2018-01-01' AND '2018-02-01' THEN 1 END) As Group1,
    SUM(CASE WHEN group IN (3, 4, 5, 6, 7, 8) AND date BETWEEN '2018-03-01' AND '2018-03-01 THEN 1 END) As Group2
FROM Table1 
WHERE label = 'label1'
person Erik Blomgren    schedule 27.11.2018
comment
Обратите внимание, что период времени для второго запроса составлял всего один день. Я также переключаю ›= и‹ = на МЕЖДУ. - person Erik Blomgren; 27.11.2018