2016-05-19 2 views
1

У меня есть таблица вроде этого:SQL: Split Dataset на две колонки

id c_id time value 
    1  4  1  12 
    2  4  2  5 
    3  4  3  6 
    4  4  4  48 
    5  4  5  1 
    6  4  6 121 
    7  5  1 121 
    8  5  2 321 
    9  5  3  2 
10  5  4  1 
11  5  5  54 
12  5  6 4546 
13  5  7  78 
14  5  8 784 
15  5  9  1 

Теперь я хочу таблицу, как это с командой SELECT:

time1 value1 time2 value2 
    1  12  1  121 
    2  5  2  321 
    3  6  3  2 
    4  48  4  1 
    5  1  5  54 
    6  121  6 4546 
    0  0  7  78 
    0  0  8  784 
    0  0  9  1 

time1 и value1 является из данных с c_id=4, time2 и value2 есть данные: c_id=5

Возможно ли создать команду SELECT для этого?

Я надеюсь, что вы можете помочь

+2

Пожалуйста, текст - не изображения. – jarlh

ответ

1

Ие могут использовать внутреннее соединение

select a.time as time1, a.value as value1, b.time as time2, b.value as value2 
from my_table as a 
inner join my_table as b on a.time = b.time 
and a.c_id= 4 
and b.c_id= 5; 
+0

С a.id = b.id он не работает - мне пришлось изменить его на a.time = b.time. Но ваш код мне очень помог! Thx человек! – Blobonat

+0

'a.time = b.time' не будет отображать все записи c_id 5. он будет отображать записи до 6, потому что c_id 4 имеет записи до 6 только –

+0

Да, я знаю. И это не оптимально, но с 'a.id = b.id' он ничего не показывает ... У меня нет другой идеи, какие критерии я должен использовать ... – Blobonat

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