在过去30天内如何获得超过1000美元的用户?每位用户最近30天。 SQL有限制

时间:2018-12-02 11:51:39

标签: mysql sql

我在DB中有表产品。 产品:id,user_id,product_price。 在过去30天内如何获得超过1000美元的用户? (每位用户最近30天) 我的脚本对我没有帮助:

SELECT   t.user_id,
        ,SUM(t.product_price) 
FROM ( SELECT p.user_id
            , p.product_price 
        FROM products p 
        ORDER BY p.id DESC LIMIT 30 
     ) t 
GROUP BY t.user_id 
HAVING SUM(t.product_price) >= 1000

1 个答案:

答案 0 :(得分:0)

您不需要子查询,您需要WHERE。 “过去30天”表示直到今天的时间段。为此,请使用curdate()(或类似的构造):

SELECT p.user_id, SUM(p.product_price)
FROM products p 
WHERE p.<date column> >= curdate() - interval 30 day
GROUP BY p.user_id
HAVING SUM(p.product_price) >= 1000;

大概,您的数据中没有将来的日期,因此您无需检查日期是否过去。

数据库中表的名称非常可疑。我不知道为什么user_id会出现在名为products的表中。