gpt4 book ai didi

MySQL - 连接所有子记录都有值的记录

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

第 1 部分

假设我有一个订单表,每个订单都有一笔或多笔分期付款。

分期付款

id  |  order_id  |  customer_id  |  timestamp
-------------------------------------------------------
1 | 1 | 5 | 2014-10-31 00:00:00
2 | 1 | 5 | NULL
3 | 1 | 5 | 2014-10-31 00:00:00
4 | 2 | 8 | 2014-10-31 00:00:00
5 | 2 | 8 | 2014-10-31 00:00:00
6 | 2 | 8 | 2014-10-31 00:00:00
7 | 3 | 5 | 2014-10-31 00:00:00

我想检索所有分期付款都有时间戳的所有订单,并且这些时间戳中最大的在最近 X 天内。

在上表中,我应该检索订单 ID 2 和 3,但不能检索 1,因为其中一期的时间戳为 NULL。

最有效的方法是什么?我真的不知道从哪里开始,但我想我需要某种子查询来稍后处理数据。

第 2 部分

最终,我在这里想做的是计算每个客户有多少个订单通过了第 1 部分中的测试(仅所有分期付款都有时间戳的订单),我会将其与另一个值进行比较。

因此,一旦我有了包含所有订单且所有分期付款都有时间戳的结果集,我如何才能将这些订单分组以包含每个符合条件的客户的计数?

最佳答案

select order_id
from order
group by order_id
having sum(timestamp is null) = 0

对于问题的第二部分:

select customer_id, count(distinct order_id) as unique_orders
from order
where timestamp is not null
group by customer_id

关于MySQL - 连接所有子记录都有值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26679769/

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