私はこのクエリのROLLUPとCUBE同じクエリフェッチ異なる結果
について学ぶためにこのシリーズを以下の午前:
select
case
when grouping(CustomerName) = 1 then 'All Customers'
else CustomerName
end as CustomerName,
case
when grouping(ItemName) = 1 then 'All Items'
else ItemName
end as ItemName,
sum(quantity*pricepercase) as Amount1
from orders
group by CustomerName, ItemName
with cube
を、著者は次のようになりました:
CustomerName ItemName Amount
-------------------- -------------------- ---------------------
Jacob Item 1 312.50
Jacob Item 2 480.00
Jacob All Items 792.50
Mike Item 1 75.00
Mike Item 2 44.00
Mike All Items 119.00
All Customers All Items 911.50
All Customers Item 1 387.50
All Customers Item 2 524.00
キューブによって生成される2つの余分な行は、最後の2行です。
CustomerName ItemName Amount
-------------------- -------------------- ---------------------
Jacob Item 1 312.50
Mike Item 1 75.00
All Customers Item 1 387.50
Jacob Item 2 480.00
Mike Item 2 44.00
All Customers Item 2 524.00
All Customers All Items 911.50
Jacob All Items 792.50
Mike All Items 119.00
最初の結果セットが適切に表示されます。なぜ私はそれを実行すると違いがありますか?
このクエリを含めるように編集されました。 – Animesh
'WITH CUBE'は使用しないでくださいhttp://msdn.microsoft.com/en-us/library/ms177673.aspx *すべての新しい作業にはISO準拠の構文を使用してください。非ISO準拠の構文は、下位互換性のために提供されています。* –
ああ!それは知って良いです。 'WITH CUBE'の代わりに' CUBE(elem1、elem2) ' – Animesh