簡體   English   中英

PostgreSQL選擇查詢'將多行連接到一行'

[英]PostgreSQL select query 'join multiple rows to one row'

我是PostgreSQL的新手。 我的情況是我有一個表存儲我的數據。 數據作為一行來自文件,並作為5行保存在數據庫中。 我想要的是創建一個SELECT語句,它將5行再次組合成一個。

例如

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

代碼的值正在變為具有實際值的值的列。

這可能嗎?

你可以使用( 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM