如何将SQL查询中的行转换为列
我有一个SQL查询,它生成一个包含用户及其任务编号答案的表: 我应该使用哪个SQL查询来获取以下内容: 我有50个问题编号和大约1500个用户。不幸的是,在我看来,简单的选择和分组在这里是做不到的如何将SQL查询中的行转换为列,sql,postgresql,pivot,Sql,Postgresql,Pivot,我有一个SQL查询,它生成一个包含用户及其任务编号答案的表: 我应该使用哪个SQL查询来获取以下内容: 我有50个问题编号和大约1500个用户。不幸的是,在我看来,简单的选择和分组在这里是做不到的 多谢各位 您可以使用条件聚合: select username, max(answer) filter (where task_number = 1) as task_1, max(answer) filter (where task_number = 2) as ta
多谢各位 您可以使用条件聚合:
select username,
max(answer) filter (where task_number = 1) as task_1,
max(answer) filter (where task_number = 2) as task_2
from t
group by username;
样本数据最好以如下方式表示。有关如何创建美观的表格的一些提示,请参阅。它很有效!非常感谢你!但是,你能解释一下为什么我们应该使用max(答案)?@VladDeryabkin。只有一行与筛选条件匹配。您需要一个聚合函数,因此
max()
与任何此类函数一样好。