2016-07-28 2 views
0

Я хочу вставить новую запись в строку, только если количество строк, удовлетворяющих условию, больше значения.Положите условие на счет внутри, где в sql

Как это сделать? Мой пример sql-запроса, который дает ошибку, является

INSERT INTO coupon_use (coupon, customer) VALUES (3, 4) 
WHERE (SELECT count(redeem_at) from coupon_use WHERE coupon=3) <= 150; 

Это говорит мне, что есть ошибка. Как исправить этот запрос?

Я хочу, чтобы вставить элемент в этой таблице со значениями 3 и 4, только если количество купонов есть redemed является greator чем 150

сервера Моих базов данных Postgres

ответ

2

Вы не можете использовать ЗНАЧЕНИЕ и предложение WHERE.

Вам потребуется ВЫБЕРИТЕ

insert into coupon_use(coupon, customer) 
select 3, 4 
from coupon_use 
where coupon = 3 
group by coupon -- we can group by coupon to be able to use an HAVING clause 
having count(redeem_at) <= 150