2015-04-01 2 views
0

в таблице, как это:
группа по макс и порядка

code  code1 code2 code3 code4 
FILA841201 123456 481201 654987 NULL 
NULL  123456 481201 1234 NULL 
NULL  123456 481201 789014 324324 

мне нужно получить только одну строку, сегодня используют эти запросы

CREATE TABLE tmp2 (SELECT MAX (код) как code, code1, max (code2) как code2, max (code3) как code3, max (code4) как code4 FROM tmp1 WHERE code1 NOT NULL group по коду1);

CREATE TABLE tmp3 (SELECT max (код) как код, max (код1) как code1, code2, max (code3) как code3, max (код4) в качестве кода4 FROM tmp1 WHERE code2 NOT NULL group by code2);

ЕСС ... задействованной для всех столбцов

моя проблема заключается в том, что если есть разные значения в столбце, я должен уступить дорогу линии, имеющей первую колонку, заполненную.

В этом примере код3 Я должен выйти из «654987», а не максимум (789014).

результат, который я должен получить

code  code1 code2 code3 code4 
FILA841201 123456 481201 654987 324324 

спасибо за внимание

+0

Нет таких вещей, как «первая строка». У вас есть столбец, определяющий порядок строк? –

+0

Сегодня нет, я хотел бы создать его – user2069604

ответ

0

Если у вас есть столбец, который определяет порядок строк, вы можете сделать это с помощью коррелированных подзапросов:

select (select code from tmp1 where code is not null order by id limit 1) as code, 
     (select code1 from tmp1 where code1 is not null order by id limit 1) as code1, 
     (select code2 from tmp1 where code2 is not null order by id limit 1) as code2, 
     (select code3 from tmp1 where code3 is not null order by id limit 1) as code3, 
     (select code4 from tmp1 where code4 is not null order by id limit 1) as code4 
+0

в этом случае, если у меня есть разные значения, он создаст две строки, мне нужно, чтобы я игнорировал последовательные значения, если они отличаются .. – user2069604

+0

@ user2069604. , , Нет возможности, чтобы этот запрос возвращал более одной строки. –

+0

Этот запрос создал таблицу, почти идентичную первой, но все еще не сработала, потому что нет группы. с системой, которую я использую сейчас, от 95.000 до 18.500 записей, но у меня есть проблема, о которой я говорил раньше, если кто-то имеет первую колонку, оценивается, должен иметь preecenza для других своих столбцов, если они разные – user2069604

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