SQL小提琴:http://sqlfiddle.com/#!4/86e60/1
我的数据如下:
并尝试生成如下输出:
SQL中是否有任何函数可以解决这种用例?我不是在寻找完整的答案。我只是在寻找要搜索的内容或者有关如何解决这个问题的任何指针都会很棒。
注意:我查看了类似的帖子,但找不到任何与此相近的内容。
答案 0 :(得分:2)
pivot
版本将是:
select * from (
select apartment_id, feature_name, feature_value
from apartment_feature
)
pivot (
max(feature_value)
for feature_name in
( 'BedRooms' as bedrooms, 'BathRooms' as bathrooms, 'Flooring' as flooring )
)
order by apartment_id;
max(feature_value)
是因为pivot
语法需要聚合表达式。也许如果feature_value
是一个数字列,那么sum(feature_value)
会更有意义。
答案 1 :(得分:1)
我会使用条件聚合来做到这一点:
file_url