У меня проблема с группировкой записей в PostgreSQL. У меня есть структура, содержащая 3 столбца, неуникальный идентификатор, имя, группа (это старая система, и я не могу изменить эту структуру).
Примеры записей:
id | name | group
-----+----------+------
1 | product1 | 0
1 | product1 | test
2 | product2 | test
3 | product3 | test123
Я хочу группы, неравные 0, которые будут объединены (получить идентификатор, имя первой записи из группы).
Ожидаемый результат:
id | name | group
-----+----------+------
1 | product1 | 0
1 | product1 | test
3 | product3 | test123
В настоящее время количество записей подсчитывается следующим образом:
SELECT
COUNT(CASE WHEN group = '0' THEN group END) +
COUNT(DISTINCT CASE WHEN group <> '0' THEN group END) AS count
FROM
table
Это правильный путь? Как я могу преобразовать его для извлечения записей?