【发布时间】:2020-06-02 00:53:57
【问题描述】:
我想找一些有特殊条件的买家(在这种情况下,交易> = 600000称为明星会员)
在这种情况下,我想找出2020年1月和2020年3月存在的明星会员(交易> = 600000),但不包括在2020年2月进行交易的明星会员。
这是我的语法
SELECT users_id
FROM order_star_member
GROUP BY users_id
HAVING SUM(CASE WHEN MONTHNAME(createdAt) = 'January'
THEN total_price_star_member END) >= 600000
AND SUM(CASE WHEN MONTHNAME(createdAt) = 'March'
THEN total_price_star_member END) >= 600000
AND NOT EXISTS (SELECT 1 FROM order_star_member
GROUP BY users_id
having sum(case when monthname(createdAt) = 'February'
THEN total_price_star_member END) >= 600000);
这是我的小提琴
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2c85037215fe71f700b51c8fd3a5ae76
在我的小提琴中,预期的结果是 users_Id 15,因为该 id 订单在 1 月和 3 月但不是在 2 月
【问题讨论】:
-
什么是“2020年2月做交易”是什么意思?您希望在小提琴中返回哪个 users_id?
-
所以根据我的小提琴,应该是 users_id '15' 在 1 月和 3 月而不是在 2 月进行交易@danblack
标签: mysql mysql-workbench mysql-error-1064