对单个列执行多个聚合

Perform multiple aggregations on a single column

我想return计算多个条件的记录数。

单个查询将 return 我需要的:

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

但是我需要 return 多次计数。我可以在 php 中通过单独调用数据库轻松实现这一点,但这似乎没有必要,而且很可能会导致延迟。

我试过使用联合,但没有用。

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

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