Ошибка миграции материализованного представления с использованием knex - PullRequest
0 голосов
/ 31 октября 2018

У меня есть SQL-запрос, который написал наставник моей компании, который создает таблицу со столбцами voucher_Id, quantity, used и remaining, однако он показывает мне пример того, что мне нужно в моей базе данных postgres и написал это внутри инструмента запроса. Я сделал несколько небольших поправок, однако, когда я пытаюсь создать материализованное представление с помощью миграции, следующий запрос выдает ошибку:

Вот его запрос, который он написал в инструменте запросов на postgres, который работает как шарм:

SELECT v.voucher_id,v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "remaining"
      FROM public.vouchers v
      LEFT OUTER JOIN public.order_vouchers ov ON (v.voucher_id = ov.voucher_id)
      GROUP BY v.voucher_id, v.quantity

А затем в моей миграции с использованием Knex у меня есть:

CREATE MATERIALIZED VIEW mv_vouchers
    SELECT * FROM vouchers,
      SELECT v.voucher_id,v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "left"
      FROM public.vouchers v
      LEFT OUTER JOIN public.order_vouchers ov ON (v.voucher_id = ov.voucher_id)
      GROUP BY v.voucher_id, v.quantity

Ошибка выдается специально около SELECT, я использую таблицы vouchers и order_id. Я очень новичок в этом, любая помощь очень ценится.

1 Ответ

0 голосов
/ 31 октября 2018

У вас есть два предложения SELECT. Это то, что вы хотите?

CREATE MATERIALIZED VIEW mv_vouchers as
      SELECT v.voucher_id, v.quantity, COUNT(ov.voucher_id) AS "used", v.quantity - COUNT(ov.voucher_id) AS "left"
      FROM public.vouchers v LEFT OUTER JOIN
           public.order_vouchers ov
           ON v.voucher_id = ov.voucher_id
      GROUP BY v.voucher_id, v.quantity;
...