包括并排除特定记录

问题描述 投票:0回答:1

我想找到一些条件特殊的买方(在这种情况下,交易> = 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顺序是在一月和三月而不是二月的

mysql mysql-workbench mysql-error-1064
1个回答
1
投票

首先在内部t中按月分组以确定所有星级成员。

© www.soinside.com 2019 - 2024. All rights reserved.