groupbyの使用法を要約します

今日の例でgroup by使用法を要約てください

要約する:group by:ALL ,Cube,RollUP,Compute,Compute by

データスクリプトを作成する

Create Table SalesInfo
(Ctiy nvarchar(50),
OrderDate datetime,
OrderID int
)

insert into  SalesInfo
select N‘北京‘,2014-06-09,1001
union all
select N‘北京‘,2014-08-09,1002
union all
select N‘北京‘,2013-10-09,1009
union all
select N‘大连‘,2013-08-09,4001
union all
select N‘大连‘,2013-10-09,4002
union all
select N‘大连‘,2013-05-12,4003
union all
select N‘大连‘,2014-11-11,4004
union all
select N‘大连‘,2014-12-11,4005

まず、次のスクリプトを実行します。

select Ctiy,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy
with cube

ここに画像の説明を挿入
余分な行がすべての注文の要約であることがわかります

次のスクリプト:

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with cube

ここに画像の説明を挿入
グループ化のディメンションが要約されており、注文の合計もあることがわかります。

次のスクリプト(表示されることに注意してくださいrollup):

select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with rollup

ここに画像の説明を挿入
リストさrollupれてgroup byいる最初のグループ化フィールドで要約操作実行するために使用します

次のスクリプト:

select Ctiy,count(OrderID) as OrderCount
from
SalesInfo
where
Ctiy = N‘大连‘
group by all Ctiy

使用group by all後、条件を満たしていない都市も表示されますが、注文数はゼロです。

一緒に使用するAllことはできずcuberollup一緒にhaving使用するとAll、関数は失敗することに注意してください

次のスクリプト:

select Ctiy,orderdate,orderid
from
SalesInfo
compute count(orderid)

ここに画像の説明を挿入
2つの結果セットが表示されます。1つは注文結果セットで、もう1つは注文結果セットの総数です。

最後のスクリプト:

select Ctiy,orderdate,orderid
from
SalesInfo
order by Ctiy
compute count(orderid) by Ctiy

ここに画像の説明を挿入
異なる都市に応じて、その都市の注文情報を個別に表示し、1つはその都市のすべての注文の数量を表示します

最初にこれについて話しましょう。

おすすめ

転載: blog.csdn.net/WuLex/article/details/114341588