如何通过一个SQL查询获得多个计数?

我想知道如何编写此查询。

我知道这个实际的语法是虚假的,但是它将帮助您理解我想要的。我需要这种格式,因为它是更大查询的一部分。

SELECT distributor_id, 

COUNT(*) AS TOTAL,

COUNT(*) WHERE level = 'exec',

COUNT(*) WHERE level = 'personal'

我需要所有这些都在一个查询中返回。

此外,它必须排成一排,因此以下内容将不起作用:

'SELECT distributor_id, COUNT(*)

GROUP BY distributor_id'

回答:

您可以将CASE语句与聚合函数一起使用。这与PIVOT某些RDBMS中的函数基本相同:

SELECT distributor_id,

count(*) AS total,

sum(case when level = 'exec' then 1 else 0 end) AS ExecCount,

sum(case when level = 'personal' then 1 else 0 end) AS PersonalCount

FROM yourtable

GROUP BY distributor_id

以上是 如何通过一个SQL查询获得多个计数? 的全部内容, 来源链接: utcz.com/qa/416264.html

回到顶部