2011-07-15 10 views
0

私持っているが、次の列を持つテーブルのための最高のSQLものですそのチームと地域に存在する人の総数の列も表示します。 1つの提案は、列の値を1にすることでした。その列に合計を加えましたが、より単純な解決策が必要です。このアウトプットの人々をどのように数えることができますか?は、このシナリオ

答えて

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

私は個人的には私のグループバイヤーの名前を好む( ''グループ、チームは '1,2、ではなく' 'でグループ化する)。 – AllenG

0
select Team, 
     Region, 
     count(*) as PersonCount 
from YourTable 
group by Team, Region 
0
SELECT Team, Region, COUNT(*) 
    FROM Table 
    GROUP BY Team, Region 

私は何かが欠けていない限り、うまく動作するはずです。

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

とする必要があります。いくつかはCount(すべて)を提案するかもしれないことに注意してください。 Count(all)を使用することに慣れてはいけないIMOは悪い習慣です。あなたのテーブルのインデックス列を持っている場合は、常にCount()でそれを使用してください。その後、インデックスの作成方法によっては、インデックスのみを使用してテーブルに触れることがなくなる可能性があるので、クエリははるかに高速になります。

関連する問題