首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql -计算日期间隔中的行数

Mysql -计算日期间隔中的行数
EN

Stack Overflow用户
提问于 2016-03-17 08:54:56
回答 2查看 49关注 0票数 0

我有下面的表格

代码语言:javascript
复制
customerID | orderID | orderDate
----------------------------------
1          |  67     | 2015-12-15
1          |  66     | 2015-10-20
1          |  65     | 2015-1-7
2          |  64     | 2014-9-6
2          |  63     | 2014-7-8
3          |  62     | 2015-1-15

我需要确定2014年和2015年12个月内至少有3个不同orderID的所有customerID

EN

回答 2

Stack Overflow用户

发布于 2016-03-17 09:03:18

嗯。你可以这样做:

代码语言:javascript
复制
select distinct customerId
from t
where 3 <= (select count(*)
            from t t2
            where t2.customerId = t.customerId and
                  t2.date >= t.date and
                  t2.date < date_add(t.date, interval 12 month)
           );

(customerId, date)上建立索引将有助于提高性能。而且,您可能需要在子查询中使用count(distinct OrderId),但是考虑到您的示例数据,这似乎不是必需的。

票数 0
EN

Stack Overflow用户

发布于 2016-03-17 09:05:43

试试这个:

代码语言:javascript
复制
SELECT customerID, order_count FROM (SELECT customerID, COUNT(DISTINCT orderID) AS 
order_count WHERE YEAR(orderDate) = 2014 GROUP BY customerID) AS 
table_orders WHERE order_count >= 3

您可以先更改WHERE子句,以便更改日期范围,我建议您采用一种方法来计算整个2014年

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36049770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档