2015-02-28 4 views
-1

Я хотел бы вернуть счет на количество записей для нескольких условий.Выполнение нескольких агрегатов в одном столбце

Один запрос будет возвращать то, что мне нужно:

SELECT count(id) AS "support" FROM mail WHERE mail_class = "support" 

Однако мне нужно возвращать несколько счетчиков. Я мог бы легко достичь этого в php, сделав отдельные обращения к базе данных, но это кажется ненужным и, скорее всего, вызовет задержку.

Я пробовал использовать союз, но это не сработало.

+0

Вы можете привести пример результата, которого вы ожидаете? –

ответ

3

Вы хотите использовать условную агрегацию. Это выглядит примерно так:

SELECT sum(mail_class = 'support') as support, 
     sum(mail_class = 'who know what you really want') as othercount 
FROM mail; 
+0

Это сработало точно, извините, если я был немного расплывчатым в своем вопросе, я не был уверен, как это выразить. Вы, должно быть, поняли в какой-то степени! Спасибо @Gordon –

+0

Спасибо за термин «условная агрегация». Я использовал этот пример SUM (условие) в нескольких моих собственных ответах в последнее время и не знал, как его назвать. – AdamMc331

Смежные вопросы