今日の例で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
ことはできずcube
、rollup
一緒に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つはその都市のすべての注文の数量を表示します
最初にこれについて話しましょう。