如何使用一个SQL查询获得多个计数?
如何使用一个SQL查询获得多个计数?
我想知道如何编写这个查询。
我知道这个实际的语法是虚假的,但它可以帮助你理解我想要的。
我需要它以这种格式,因为它是一个更大的查询的一部分。
SELECT distributor_id, COUNT(*) AS TOTAL, COUNT(*) WHERE level = 'exec', COUNT(*) WHERE level = 'personal'
我需要所有这些在一个查询中返回。
此外,它需要在一行中,所以以下内容不起作用:
'SELECT distributor_id, COUNT(*) GROUP BY distributor_id'
admin 更改状态以发布 2023年5月21日
有一种方法是一定有效的
SELECT a.distributor_id, (SELECT COUNT(*) FROM myTable WHERE level='personal' and distributor_id = a.distributor_id) as PersonalCount, (SELECT COUNT(*) FROM myTable WHERE level='exec' and distributor_id = a.distributor_id) as ExecCount, (SELECT COUNT(*) FROM myTable WHERE distributor_id = a.distributor_id) as TotalCount FROM (SELECT DISTINCT distributor_id FROM myTable) a ;
编辑:
请看@KevinBalmforth关于性能的分析,你很可能不想使用这种方法,而是选择@Taryn的答案。我将保留这个选项,以便人们可以理解他们的选择。