小编典典

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

all

我想知道如何编写这个查询。

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

SELECT distributor_id, 
COUNT(*) AS TOTAL, 
COUNT(*) WHERE level = 'exec', 
COUNT(*) WHERE level = 'personal'

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

此外,它需要在一行中,因此以下内容不起作用:

'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'

阅读 99

收藏
2022-03-21

共1个答案

小编典典

您可以使用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
2022-03-21