Таблица:
| ID | SITE| TIME | TYPE|
|----|------|-------|-----|
| aa | 100 | 12-18 | fo |
| aa | 101 | 12-10 | ba |
| bb | 102 | 12-10 | fo |
| cc | 100 | 12-09 | ba |
| cc | 109 | 12-01 | fo |
| dd | 100 | 12-08 | fo |
Значение fo равно 2, а ba равно 1.
Я хочу заказать по типу и вставить его в другую таблицу.
INSERT INTO "NUtable"
SELECT DISTINCT ON("ID")
*
FROM
TABLEX
ORDER BY
"ID","SITE","TIME",(CASE "TYPE" WHEN 'fo' then 2
WHEN 'ba' then 1
ELSE NULL END
) DESC
Кажется, SQL работает нормально.Однако в некоторых строках результат получился неправильным.Почему так?
Вот пример для cc, который получил неправильный результат: http://sqlfiddle.com/#!17/0c0e4/2
Результат должен быть
+----+------+-------+------+
| ID | SITE | TIME | TYPE |
+----+------+-------+------+
| aa | 100 | 12-18 | fo |
| bb | 102 | 12-10 | fo |
| cc | 109 | 12-01 | fo |
| dd | 100 | 12-08 | fo |
+----+------+-------+------+
вместо
+----+------+-------+------+
| ID | SITE | TIME | TYPE |
+----+------+-------+------+
| aa | 100 | 12-18 | fo |
| bb | 102 | 12-10 | fo |
| cc | 100 | 12-09 | ba |
| dd | 100 | 12-08 | fo |
+----+------+-------+------+