2016-07-28 12 views
0

条件を満たす行の数が値より大きい場合にのみ、行に新しい項目を挿入したいとします。sql内のcount内の条件を入れてください

どうすればよいですか?エラーを与える私のサンプルのSQLクエリは

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

私はそれがどこにあるかを教えてくれます。このクエリを修正するにはどうすればよいですか?

私はクーポンの数は150

私のデータベースサーバよりgreatorあなたはVALUESを使用することはできません

答えて

2

Postgresはredemedされているがある場合にのみ、値3と4で、この表にアイテムを挿入しますWHERE句です。

あなたはSELECT

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 
が必要になります
関連する問題