在一列上执行多个聚合


Perform multiple aggregations on a single column

我想返回多个条件下的记录数。

一个查询将返回我需要的:

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

但是,我需要返回多个计数。我可以在php中通过对数据库进行单独调用来轻松实现这一点,但这似乎是不必要的,而且很可能会导致延迟。

我试过使用工会,但没有成功。

您想要使用条件聚合。它看起来像这样:

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