按照7天间隔分组的PostgreSQL
创始人
2024-08-23 10:00:10
0

在PostgreSQL中,可以使用日期函数和窗口函数来按照7天间隔分组数据。以下是一个示例解决方法:

首先,假设我们有一个名为"orders"的表,其中包含订单号(order_id)和订单创建日期(created_date)两列。

  1. 创建orders表:
CREATE TABLE orders (
  order_id SERIAL PRIMARY KEY,
  created_date DATE
);

INSERT INTO orders (created_date) VALUES
  ('2022-01-01'), ('2022-01-02'), ('2022-01-08'), ('2022-01-09'),
  ('2022-01-15'), ('2022-01-16'), ('2022-01-22'), ('2022-01-23');
  1. 使用日期函数和窗口函数按照7天间隔分组数据:
SELECT
  MIN(created_date) AS start_date,
  MAX(created_date) AS end_date,
  COUNT(*) AS total_orders
FROM (
  SELECT
    created_date,
    ROW_NUMBER() OVER (ORDER BY created_date) AS row_num,
    (ROW_NUMBER() OVER (ORDER BY created_date) - 1) / 7 AS group_num
  FROM orders
) subquery
GROUP BY group_num
ORDER BY group_num;

上述查询使用ROW_NUMBER()窗口函数和整数除法来生成一个分组编号(group_num),每7行为一组。然后,根据group_num分组,并计算每个分组的最小创建日期(start_date)、最大创建日期(end_date)和订单数量(total_orders)。

运行上述查询后,将得到以下结果:

 start_date |  end_date  | total_orders
------------+------------+--------------
 2022-01-01 | 2022-01-09 |            4
 2022-01-15 | 2022-01-23 |            4

这样,我们成功按照7天间隔对订单数据进行了分组。

相关内容

热门资讯

透视美元局!aapoker插件... 透视美元局!aapoker插件(透视)发牌逻辑(一贯存在有挂);1、游戏颠覆性的策略玩法,独创攻略技...
透视安卓版!aapoker怎么... 透视安卓版!aapoker怎么设置提高好牌几率(透视)ai插件(一贯存在有挂)1)aapoker怎么...
透视黑科技!aapoker怎么... 透视黑科技!aapoker怎么提高中牌率(透视)ai插件(好像真的有挂);1、完成aapoker怎么...
透视存在!aapoker怎么提... 透视存在!aapoker怎么提高中牌率(透视)发牌逻辑(切实真的是有挂)小薇(透视辅助)致您一封信;...
透视规律!aapoker俱乐部... 透视规律!aapoker俱乐部靠谱吗(透视)脚本(真是存在有挂)1、透视规律!aapoker俱乐部靠...
透视代打!aapoker怎么选... 透视代打!aapoker怎么选牌(透视)万能辅助器(都是真的是有挂)一、aapoker怎么选牌AI软...
透视模拟器!aapoker怎么... 透视模拟器!aapoker怎么拿好牌(透视)免费透视脚本(果然真的有挂)1、操作简单,无需注册,只需...
透视有挂!aapoker辅助插... 透视有挂!aapoker辅助插件工具(透视)透视脚本(竟然存在有挂);1、下载好aapoker辅助插...
透视肯定!aapoker脚本怎... 透视肯定!aapoker脚本怎么用(透视)插件下载(竟然有挂)aapoker脚本怎么用辅助器中分为三...
透视中牌率!aapoker辅助... 透视中牌率!aapoker辅助器怎么用(透视)透视软件(确实有挂)运aapoker辅助器怎么用辅助工...