我是PostgreSQL的新手。我的情况是我有一个表存储我的数据。数据作为一行来自文件,并作为5行保存在数据库中。我想要的是创建一个SELECT语句,它将5行再次合并为一个。
e.g。
id id2 id3 year code value
4 1 1 1642 radio 30
4 1 1 1642 tv 56
4 1 1 1642 cable 67
4 1 1 1642 dine 70
我想要一个查询,它将返回以下内容:
id id2 id3 year radio tv cable dine
4 1 1 1642 30 56 67 70
代码的值正在成为具有实际值的值的列。
这可能吗?
答案 0 :(得分:3)
您可以使用(SQL Fiddle):
SELECT m.id, m.id2, m.id3, m.year,
SUM(CASE WHEN m.code = 'radio' THEN m.value END) as radio,
SUM(CASE WHEN m.code = 'tv' THEN m.value END) as tv,
SUM(CASE WHEN m.code = 'cable' THEN m.value END) as cable,
SUM(CASE WHEN m.code = 'dine' THEN m.value END) as dine
FROM MyTable m
GROUP BY m.id, m.id2, m.id3, m.year