正在尝试列出具有此属性列出的公用属性的所有记录
问题描述:
尝试为下表编写查询时,我迷路了。乘客可以选择不同类型的水果,我想列出每种水果,谁选择了这种水果的乘客。正在尝试列出具有此属性列出的公用属性的所有记录
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;