2014-09-11 47 views
4

我是PostgreSQL的新手。我的情況是我有一張桌子來存儲我的數據。數據作爲一行從一個文件中獲取,並以5行的形式保存在數據庫中。我想要的是做一個SELECT語句,它將5行再次合併爲一個。PostgreSQL選擇查詢'連接多行到一行'

例如

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 

碼的值成爲列值與實際值。

這可能嗎?

回答

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 
+0

非常感謝您!它使蝨子成爲魅力! – 2014-09-11 13:26:31