-1
嘗試爲下表編寫查詢時,我迷路了。乘客可以選擇不同類型的水果,我想列出每種水果,誰選擇了這種水果的乘客。正在嘗試列出具有此屬性列出的公用屬性的所有記錄
pax fruit
1 apple
1 pear
2 mango
3 apple
4 mango
4 pear
輸出:
apple 1 3
pear 1 4
mango 2 4
嘗試爲下表編寫查詢時,我迷路了。乘客可以選擇不同類型的水果,我想列出每種水果,誰選擇了這種水果的乘客。正在嘗試列出具有此屬性列出的公用屬性的所有記錄
pax fruit
1 apple
1 pear
2 mango
3 apple
4 mango
4 pear
輸出:
apple 1 3
pear 1 4
mango 2 4
與SQL的問題是,查詢有一個固定的一組列。所以,如果你只有兩個成果,那麼這是可能的 - 你知道結果集有三列。但是,要推廣到更多列,您需要使用動態SQL。
select fruit,
max(case when seqnum = 1 then pax end) as col1,
max(case when seqnum = 2 then pax end) as col2
from (select pax, fruit,
row_number() over (partition by fruit order by (select null)) as seqnum
from table t
) t
group by fruit;