Чёт я туплю, нужен help =)
Есть таблица с полем для группировки. Нужно вывести все записи сгруппированные по этому полю (g), вот только не нужно группировать если оно NULL.
Ниже приведён пример для MySQL (всё хорошо).
Но, какой аналог в PostgreSQL?
Таблица:
+----+------+
| id | g    |
+----+------+
|  1 | NULL |
|  2 |    2 |
|  3 |    2 |
|  4 |    1 |
|  5 |    1 |
|  6 |    1 |
|  7 | NULL |
|  8 | NULL |
+----+------+
MySQL Query:
SELECT *
FROM `test`
GROUP BY `g`, IF(`g` IS NULL, `id`, 0);
MySQL Result:
+----+------+
| id | g    |
+----+------+
|  1 | NULL |
|  7 | NULL |
|  8 | NULL |
|  4 |    1 |
|  2 |    2 |
+----+------+
==========
PostgreSQL?
SELECT DISTINCT ON (g) g, id
FROM test;
Вот только как не группировать, когда g=NULL?
WHERE g IS DISTINCT FROM ...



