什么是这种情况下最好的SQL

时间:2011-07-15 13:24:00

标签: sql

我有一个包含以下列的表:

Team
Region
Person
Name

我希望SQL报告为每个团队/区域(groupby Team,Region)组合生成一行,并向我显示该团队和区域存在的人员总数。一个建议是让一个值为1的列对它们进行总和,但必须有一个更简单的解决方案。如何计算此输出中的人?

4 个答案:

答案 0 :(得分:1)

select
  Team,
  Region,
  count(distinct Person)
from mytable
group by 1,2

答案 1 :(得分:0)

select Team,
       Region,
       count(*) as PersonCount
from YourTable
group by Team, Region

答案 2 :(得分:0)

SELECT Team, Region, COUNT(*)
  FROM Table
  GROUP BY Team, Region

应该工作得很好,除非我遗漏了什么。

答案 3 :(得分:0)

select Team, Region, Count(Team) as PeopleCount 
from YourTable 
group by Team, Region

应该这样做。请注意,有些人可能会建议Count(全部)。不习惯使用Count(全部)IMO是一种不好的做法。如果表中有索引列,请始终在Count()中使用该列。然后你的查询会更快,因为根据索引的创建方式,你的查询可能最终只使用索引而不是触摸表。