2016-06-23 13 views
2

私の最終的な問題について雄弁に説明することはできません.SQLソリューションをよりよく記述できる場合は、このタイトルとこの質問の内容を自由に編集してください。SQL内のネストされたグループと数

"Item"、 "Category"という列を含む表にデータがあり、各項目内の異なるカテゴリの数を計算する次のクエリがあります。

SELECT 
    [ItemID], COUNT(DISTINCT [CategoryText]) AS 'number of categories' 
FROM [SampleTable] 
GROUP BY 
    ItemID 

これは私が今何をしたいか、出力

`ItemID', 'number of categories' 
100 1 
101 3 
102 1 

を与えるグループは、私の目的は「決定することであることのみほとんどの項目を行い、彼らが持っているカテゴリの数によってアイテムの数です1つのカテゴリがありますか? '上記の例の場合

、私は結果が

'Number of categories', 'Number of items' 
1, 2 
3, 1 

私はこれを取得するための単純なクエリがあると確信しているが、進展せずに、円の周りつもりであることを期待します。

答えて

3

カテゴリの数で結果を集計します。

select [number of categories], count(*) [number of items] 
from (SELECT [ItemID], COUNT(DISTINCT [CategoryText]) AS 'number of categories' 
     FROM [SampleTable] 
     GROUP BY ItemID) t 
group by [number of categories] 
+0

あなたはありがとうございます!できるときは正しいとマークします。 – SpoonerNZ

関連する問題