2016-07-13 8 views
0

3列が存在するテーブルの結果を要約する簡単なクエリが必要です。 Order ID、カテゴリ&ブランド。SQL - テーブル内のDistinct&Countの組み合わせ

要約には、注文ID、カテゴリの個別カウント、注文IDに属するブランドの個別カウントが含まれている必要があります。

サンプルデータ:

orderno product brand 
1  A  Z 
1  A  X 
1  B  Y 
2  C  X 
2  B  X 
3  C  X 
3  B  Y 

期待される結果:

orderno product brand 
1  2  3 
2  2  1 
3  2  2 

Sample Data & Summary

+0

は、私が余分なデータベースタグを削除しました。そして、私はあなたにヒントを与えます: 'カウント(区別)'。 –

+1

ようこそ。質問を投稿する前に[ask]を見てください。他にも、あなたが試みたコードとあなたが抱えている問題を投稿するべきです。また、データを画像ではなく書式付きテキストとして投稿してください – Aleksej

答えて

0

利用COUNTDISTINCTは、あなたの期待される結果を得るために:

select orderno, count(distinct product) as product, count(distinct brand) as brand 
from testtable 
group by orderno 

与えられたデータ

declare @test1 table (orderno int, product varchar(2), brand varchar(2)) 
insert into @test1 (orderno, product, brand) values 
(1, 'A', 'Z'), 
(1, 'A', 'X'), 
(1, 'B', 'Y'), 
(2, 'C', 'X'), 
(2, 'B', 'X'), 
(3, 'C', 'X'), 
(3, 'B', 'Y'); 

select orderno, count(distinct product) as product, count(distinct brand) as brand 
from @test1 
group by orderno 

結果とサンプルの実行:

orderno product brand 
1  2  3 
2  2  1 
3  2  2 
0

はこれを試してみてください、。

select orderno,count(DISTINCT product) product,COUNT(DISTINCT brand) brand  
from data 
GROUP by orderno 

出力。、

orderno  product  brand 
----------- ----------- ----------- 
1   2   3 
2   2   1 
3   2   2