首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL计数按天数分组

SQL计数按天数分组
EN

Stack Overflow用户
提问于 2021-05-10 17:56:39
回答 2查看 21关注 0票数 0

我感兴趣的是,从一些示例数据中获取一个包需要不同的长度。我目前使用的是以下代码:

代码语言:javascript
复制
SELECT COUNT(*)
FROM orders_table
WHERE DATEDIFF(day, order_date, delivered_date) = 2
AND order_date BETWEEN '2021-01-01' AND '2021-01-31'

我想要得到需要不同长度的交付计数,在上面的例子中,它查看了需要2天的交付数量。然而,这相当耗时,因为我需要在不同的天数内不断更改where语句,并重新运行代码,是否有方法对其进行排序并按月进行分组?因此,输出将如下所示:

代码语言:javascript
复制
January           February           March              April
2D   3D   4D      2D   3D   4D       2D   3D   4D      2D   3D   4D 
--------------------------------------------------------------------
12   7    32      21   53   33       8    22   41      9    44   30
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-10 18:08:00

这并不能准确地提供所需格式的输出,但结果似乎正是您想要的。通过DATEDIFF函数进行分组:

代码语言:javascript
复制
SELECT DATEDIFF(day, order_date, delivered_date) AS Date_Diff, COUNT(*)
FROM orders_table
WHERE order_date BETWEEN '2021-01-01' AND '2021-01-31'
GROUP BY DATEDIFF(day, order_date, delivered_date)

如果您只想要特定的datediff天数(例如,如果您想查看订单和交货日期只有2天、3天和4天的订单),那么只需在过滤器中添加您想要的数字:

代码语言:javascript
复制
WHERE DATEDIFF(day, order_date, delivered_date) IN (2, 3, 4)
票数 1
EN

Stack Overflow用户

发布于 2021-05-10 18:51:04

您的问题包括月份。要做到这一点:

代码语言:javascript
复制
SELECT DATE_TRUNC('month', order_date) as yyyymm
       DATEDIFF(day, order_date, delivered_date) as days_diff,
       COUNT(*)
FROM orders_table
GROUP BY DATE_TRUNC('month', order_date), DATEDIFF(day, order_date, delivered_date);

您可以使用条件聚合来透视这些结果:

代码语言:javascript
复制
SELECT DATEDIFF(day, order_date, delivered_date) as days_diff,
       SUM( (DATE_PART(month, order_date) = 1)::INT ) as jan,
       SUM( (DATE_PART(month, order_date) = 2)::INT ) as feb,
       SUM( (DATE_PART(month, order_date) = 3)::INT ) as mar,
       SUM( (DATE_PART(month, order_date) = 4)::INT ) as apr
       COUNT(*)
FROM orders_table
WHERE order_date >= '2021-01-01' AND
      order_date < '2021-05-01'
GROUP BY DATEDIFF(day, order_date, delivered_date);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67468390

复制
相关文章

相似问题

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