Multiple Count () из одной таблицы - PullRequest
3 голосов
/ 28 июня 2010

Есть ли способ получить несколько счетов в зависимости от нескольких условий из одной таблицы?например.Считайте, когда Дни меньше 15, и считайте дни с 15 до 30.

1 Ответ

13 голосов
/ 28 июня 2010

Да, вы можете объединить SUM и CASE:

SELECT
    SUM(CASE WHEN condition1 THEN 1 ELSE 0 END) count1,
    SUM(CASE WHEN condition2 THEN 1 ELSE 0 END) count2
FROM yourtable

Итак, для вашего конкретного примера:

SELECT
    SUM(CASE WHEN days < 15 THEN 1 ELSE 0 END) count1,
    SUM(CASE WHEN days BETWEEN 15 AND 30 THEN 1 ELSE 0 END) count2
FROM yourtable

Если большинство строк имеют days > 30, возможно, стоит добавить WHERE days <= 30 в конец запроса в качестве оптимизации. Также имейте в виду, что МЕЖДУ включает обе свои конечные точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...