LINUX.ORG.RU

Дополнительное генерируемое поле в выобрке

 


0

1

Есть запрос, который формирует нужную выборку, нужно к этой выборке добавить еще одно поле в котором будет содержаться 1 или 0 в зависимости от условия.

Условие:

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

id, newColum
8,   0
8,   0
10,  1
2,   0
2,   0
15,  1
15,  1
15,  1
15,  1 
15,  1

грубо говоря каждая группа идешников должна иметь отличное от соседних значение в поле newColum

А какая оригинальная проблема? Очень похоже на дз.

anonymous
()
Ответ на: комментарий от Deleted

потому что сначала сортирую по другому полю.

Noob_Linux ★★★★
() автор топика
SELECT id, rnum % 2 FROM tablename NATURAL JOIN (SELECT id, row_number() OVER (ORDER BY id ASC) AS rnum FROM tablename GROUP BY id) AS puk ORDER BY id ASC;

// если это для чего то вроде раскраски строк в таблице, то я надеюсь, что работодатель переломает тебе все пальцы, чтобы ты никогда больше не смог сесть за клавиатуру

Deleted
()
Ответ на: комментарий от Deleted

Спасибо. Да изначально показалось это наиболее простым вариантом для закрашивания строк, но потом дошло что проще делегат вставлять по условию с переопределенным паинтом.

Noob_Linux ★★★★
() автор топика
Ответ на: комментарий от Deleted

Ага я примерно такое же накатал, а потом плюнул и не стал отправлять пост.

Стоит заметить что это, я так понимаю под postgres и на других базах будет по-другому выглядеть.

pawnhearts ★★★★★
()
Ответ на: комментарий от pawnhearts

Аналог row_number() везде есть, наверное. Если нету, можно сгруппировать и инсертнуть во временную таблицу с автоинкремент-полем, потом опять джойн.

Проблема в том, что я угадал предназначение этого говна, слава богу, ОП передумал.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.