如何格式化 a 的“總計”行rollup?
Backgroup 我有一個MySQL使用group by with rollup它的 select 陳述句,但是出于格式化原因,我需要確定哪一行是“詳細資訊”,哪一行是“總計”。通過一個簡單的 RowType 列來執行此操作,該列是 1 或 0。我認為這會起作用:
select
if (MyId is null, 1,0) as RowType,
MyId,
sum(Quantity) as Quantity
from MyTable
group by MyId with rollup
這不起作用。但是,如果我創建該 select 陳述句的視圖,然后選擇該視圖并執行此操作:
Create view MyView as
select
MyId,
Sum(Quantity) as Quantity
from MyTable
group by MyId with rollup;
select
if (MyId is null, 1,0) as RowType,
MyId,
Quantity
from MyView;
有沒有更好的辦法?對于相當多的查詢,我將不得不這樣做,并且維護兩組是出錯的好方法。
編輯:搞砸了我的第二個選擇代碼并修復了它
uj5u.com熱心網友回復:
您可以將分組查詢放入子查詢中。
這是必需的,因為選擇后不會發生分組,因此SELECT串列不能參考WITH ROLLUP同一查詢中創建的值。
select
if(MyId is null, 1,0) as RowType, MyId, Quantity
FROM (
SELECT MyId, sum(Quantity) as Quantity
from MyTable
group by MyId with rollup
) AS x
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/524714.html
