2014-09-11 4 views
4

Я новичок в PostgreSQL. Мое дело в том, что у меня есть таблица, где я храню свои данные. Данные поступают из файла в виде одной строки и сохраняются в базе данных в виде 5 строк. Я хочу сделать инструкцию SELECT, где он будет объединять 5 строк снова в один.PostgreSQL select query 'join несколько строк в одну строку'

например.

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

Большое спасибо! Это работало вши очарование! –

Смежные вопросы