gpt4 book ai didi

mysql - 按计数和另一个标准抓取行 MySQL

转载 作者:行者123 更新时间:2023-11-29 08:22:56 25 4
gpt4 key购买 nike

我有一个订单表,其中有 date_paid,用于保存订单处理的日期。我还有一个买家的 user_id 列。

我如何获取在 2013 年 4 月 1 日 00:00:00 之前下过订单但在今天之后尚未下过任何订单的所有 user_id(唯一)。

我会做的是:

  1. 抓取所有订单,唯一用户id:GROUP BY orders.user_id WHERE orders.date_paid < '2013-04-01 00:00:00'

  2. Foreach 循环遍历它们并检查它们在该日期之后是否有任何订单 WHERE date_paid > '2013-04-01 00:00:00'

这可以通过查询来完成吗?

最佳答案

这是一种使用聚合和 having 子句来实现此目的的方法:

select user_id
from orders o
group by user_id
having sum(case when date_paid < '2013-04-01' then 1 else 0 end) > 0 and
sum(case when date_paid >= '2013-04-01' then 1 else 0 end) = 0;

having 子句中的第一个条件计算 2013 年 4 月 1 日之前的订单数。它要求至少有一个订单。第二个统计此后的订单数量。它要求没有订单。

关于mysql - 按计数和另一个标准抓取行 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18848641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com