gpt4 book ai didi

mysql - 基于 timediff 和包含字符串的列的 SQL 计数

转载 作者:行者123 更新时间:2023-11-29 21:20:18 26 4
gpt4 key购买 nike

我正在使用 SQL Workbench。

cust_num    date    notes
1234 2016-02-01 advice
1234 2016-02-01 something else
1234 2016-02-02 order
1234 2016-02-03 order
4421 2016-02-15 advice
4421 2016-02-17 order
4421 2016-02-18 something else
4421 2016-02-24 order

我知道上面的内容有点不清楚,但基本上,上表中有 3 列。一项显示 customer_num(客户编号),一项显示日期,一项显示注释字段。根据上面的内容,我想执行两个查询。我对此很陌生,所以我希望这是清楚的。我正在使用 SQL 工作台。

i) 我想统计收到建议后 4 天内下订单的 DISTINCT 'customer_num' 数量。

因此,根据上表得出的答案为 3。这是因为 cust_num '1234' 在 4 天内下了 2 个订单,而 cust_num '4421' 下了 1 个订单。所以总共 3

ii)我想统计在收到建议后 15 天内下订单的 DISTINCT customer_num 的数量。唯一的规定是我不想重新计算 (i) 在 4 天内下订单的订单。我想排除他们。

因此,答案为 1. Customer_num“4421”下了 1 个订单,该订单的有效期大于 4 天但小于或包括 15 天。

非常感谢任何帮助。谢谢。

最佳答案

一种方法是使用exists:

select count(distinct cust_num)
from customers t
where exists (select 1
from customers t2
where t2.cust_num = t.cust_num and
t2.date between t.date and date_add(t.date, interval 3 day)
);

这两个查询具有相同的结构。您只需更改子查询中 where 子句中的条件即可。

关于mysql - 基于 timediff 和包含字符串的列的 SQL 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35748625/

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