2009-04-08 11 views
2

ユーザーが特定のサービスにアクセスした回数を返すSQLの周りに頭を浮かべることはできません。それはネストされたカウントと選択を必要とするかもしれないと思うが、その周りに私の頭を得ることはできません。SQL:Oracleの複数の列にわたる出現回数を集計する

データは次のようになります。

UserID Service 
--------------- 
1  Map1 
1  Map2 
1  Map1 
2  Map1 
2  Map2 
3  Map4 
3  Map2 
3  Map2 
3  Map2 
...  ... 

と出力の所望の種類は、この線に沿って何かである:

UserID Service TimesAccessed 
------------------------------ 
1  Map1  2 
1  Map2  1 
2  Map1  1  
2  Map2  1 
3  Map3  3 
3  Map4  1 
...  ...  ... 

すべてのヘルプははるかに高く評価されるだろう。

答えて

8

私は、これはそれをしないと思う:我々は助けることができ嬉しい

SELECT UserID, Service, COUNT(UserID) TimesAccessed 
FROM Table 
GROUP BY UserID, Service 
+0

ブリリアント - 両方の答えが働きます。それらの朝の一つ....! –

2

これはなに?

select 
    userid, service, count(userid) 
from 
    table 
group by 
    userid, service 
+0

感謝Bravax –

+0

問題ありません。 – Bravax

+0

申し訳ありませんが、あなたは実際に分け前で私をピックアップしたと思います! –

関連する問題