我認爲這應該很簡單,但我不知道如何去做。如何爲每列使用不同的WHERE子句
我想編寫一個SQL查詢,它將輸出三列:星期,蘋果數量和橙子數量。
說我的數據庫看起來是這樣的:
week | fruit_type | fruit_num
------------------------------------------
6/17/2013 0:00:00 | Apples | 4
6/17/2013 0:00:00 | Oranges | 3
6/24/2013 0:00:00 | Oranges | 1
6/24/2013 0:00:00 | Apples | 2
6/24/2013 0:00:00 | Apples | 7
我想查詢輸出這樣的:
week | Apples | Oranges
------------------------------------------
6/17/2013 0:00:00 | 4 | 3
6/24/2013 0:00:00 | 9 | 1
我能得到蘋果和橘子分別是這樣的:
select
date_trunc('week',week) as "Week",
sum(fruit_type) as "Apples"
from table
where fruit_type = 'Apples'
group by date_trunc('week',week)
order by date_trunc('week',week)
但顯然更喜歡用相同的查詢生成兩列。
建議您也在'WHERE fruit_type IN('Apples','Oranges')'給優化器一個鏡頭。可能會有更多的成果,而你只關心這個查詢中的那兩個。 – woot