Я после этой серии статей, чтобы узнать о 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 строками. Я получаю такие результаты:
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, предусмотрен для обратной совместимости. * –
Oh! Это хорошо знать. 'CUBE (elem1, elem2)' вместо 'WITH CUBE' – Animesh