我想找到一些条件特殊的买方(在这种情况下,交易> = 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顺序是在一月和三月而不是二月的
首先在内部t
中按月分组以确定所有星级成员。