С помощью какого запроса можно преобразовать данную таблицу (PostgreSQL)?

Есть таблица вида

введите сюда описание изображения

Необходимо после каждого клиента добавить строку с номером клиента и значением NULL.

Результат выглядит так

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Ainar-G

Первое, что пришло в голову, это UNION ALL и сортировка:

SELECT * FROM (
  SELECT *
    FROM t_1
  UNION ALL
  SELECT DISTINCT client, CAST(NULL AS DATE) AS date
    FROM t_1
) AS t_2
ORDER BY client ASC
       , date   ASC NULLS LAST
;

Результат:

 client |    date    
--------+------------
      1 | 2020-09-12
      1 | 2020-09-17
      1 | NULL
      2 | 2020-10-02
      2 | NULL
(5 rows)
→ Ссылка