[英]Pivoting SQL into multiple columns
我認為我必須在此處使用數據透視,但不太確定。
我有下表的SQL
|Customer|Day|Amt|
| 1 | 1 | x1 |
| 2 | 1 | x2 |
| 3 | 1 | x3 |
| 1 | 2 | x4 |
| 3 | 3 | x5 |
| 3 | 5 | x6 |
我想旋轉它,使其看起來像
|Customer | 1 | 2 | 3 | 4 | 5 |
| 1 | x1 | x4 | | | |
| 2 | x2 | | | | |
| 3 | x3 | | x5 | | x6 |
空白單元格為空。
最后,我想對第1,2和3天中的所有值求和,這可能會影響其設計方式。
有誰對我如何轉置此數據有任何提示。 客戶數量和天數可以變化,這會增加復雜性嗎?
任何指針將不勝感激
謝謝
SELECT * FROM
(
SELECT customer, DAY, amt
FROM your_table
)
pivot (SUM(amt) FOR ( DAY) IN(1, 2, 3, 4, 5));
如果您只想按客戶和日期進行匯總,則按以下方式分組:
SELECT SUM(Amt) Amt, Customer, Day
FROM your_table
GROUP BY Customer, Day
如果需要將結果顯示為列,則可以使用PIVOT子句(假設您具有Oracle 11g或更高版本)
SELECT * FROM
(
SELECT customer, DAY, amt
FROM your_table
)
pivot (SUM(amt) FOR (DAY) IN(1, 2, 3, 4, 5));
MS-SQL的SQL Fiddle示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.