把一个条件放在sql里面的count里面

时间:2016-07-28 07:50:48

标签: sql postgresql

我想仅在满足条件的行数大于值时才在行中插入新条目。

我该怎么做?我给出错误的示例sql查询是

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

它告诉我在哪里有错误。如何更正此查询?

我想在此表中插入一个值为3和4的项目,只有当重新安排的优惠券数量大于150时

我的数据库服务器是postgres

1 个答案:

答案 0 :(得分:2)

您不能使用VALUES和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