我有以下幾列一個表的最佳SQL:究竟是什麼情景
Team
Region
Person
Name
,我想一個SQL報告,以產生一排爲每個團隊/地區(GROUPBY隊,區)組合並向我顯示該團隊和地區的總人數列。一個建議是讓一列值爲1的列給他們在這些列上做一筆總和,但必須有一個更簡單的解決方案。我怎麼能指望這個輸出中的人?
我有以下幾列一個表的最佳SQL:究竟是什麼情景
Team
Region
Person
Name
,我想一個SQL報告,以產生一排爲每個團隊/地區(GROUPBY隊,區)組合並向我顯示該團隊和地區的總人數列。一個建議是讓一列值爲1的列給他們在這些列上做一筆總和,但必須有一個更簡單的解決方案。我怎麼能指望這個輸出中的人?
select
Team,
Region,
count(distinct Person)
from mytable
group by 1,2
select Team,
Region,
count(*) as PersonCount
from YourTable
group by Team, Region
SELECT Team, Region, COUNT(*)
FROM Table
GROUP BY Team, Region
應該工作得很好,除非我失去了一些東西。
select Team, Region, Count(Team) as PeopleCount
from YourTable
group by Team, Region
應該這樣做。請注意,有些人可能會提示Count(全部)。不習慣使用Count(全部)IMO是一個不好的習慣。如果您的表中有一個索引列,則總是在Count()中使用該列。然後你的查詢將會快得多,因爲依賴於索引創建的可能性,你的查詢可能最終只使用索引而不是觸摸表。
我個人比較喜歡命名我的分組(比如「團隊,地區」而不是「1,2」)。 – AllenG