考慮以下情況, 
我們有包含 Apples Sold 資訊的 Apple,Color 給出 Apple Color,Date 給出它的銷售日期。
我想把蘋果顏色,2010 年之后售出的蘋果總和,以及 2016 年之后售出的蘋果總和放在同一行。
這是我的代碼
SELECT distinct Color, (CASE WHEN WHN >= to_date('01/01/2010','mm/dd/yyyy')
THEN SUM(Apple) over (partition by Color) end) as tot_2010,
(CASE WHEN WHN >= to_date('01/01/2016','mm/dd/yyyy')
THEN SUM(Apple) over (partition by Color) end) as tot_2016
from temp;
現在,這是我得到的輸出

這是所需的輸出

這是 SQL 小提琴
http://sqlfiddle.com/#!4/86b932/7
uj5u.com熱心網友回復:
您想使用條件聚合:
SELECT color,
SUM(CASE WHEN whn >= DATE '2010-01-01' THEN apple END) AS tot_2010,
SUM(CASE WHEN whn >= DATE '2016-01-01' THEN apple END) AS tot_2016
FROM temp
GROUP BY color;
其中,對于您的示例資料:
create table temp(Apple, Color, WHN) AS
SELECT 3, 'Red', DATE '2012-01-05' FROM DUAL UNION ALL
SELECT 9, 'Green', DATE '2014-01-11' FROM DUAL UNION ALL
SELECT 8, 'Red', DATE '2017-10-07' FROM DUAL UNION ALL
SELECT 1, 'Red', DATE '2021-02-10' FROM DUAL UNION ALL
SELECT 7, 'Green', DATE '2020-08-04' FROM DUAL UNION ALL
SELECT 2, 'Red', DATE '2013-03-10' FROM DUAL;
輸出:
顏色 TOT_2010 TOT_2016 綠 16 7 紅色的 14 9
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/349008.html
