PGSQL中按照周维度汇总数据

2024-03-17 02:08
文章标签 数据 汇总 维度 pgsql

本文主要是介绍PGSQL中按照周维度汇总数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在网上看到多种写法,但是最后汇总出来的数据计算方法有差异,周日为周一,不满足条件。

SELECT EXTRACT(DOW FROM CURRENT_DATE); 

这个sql查询的时候一周中的第几天 我执行的时候是2020年7月1号所以为第三天,

在这个基础上可以返回不同想要的时间如下,

1-7分别是周一到周日这是换算成国内的写法,但是其实际还是安装国际周来统计,即周日为周一。


SELECT CURRENT_DATE-(EXTRACT(DOW FROM CURRENT_DATE)-1||‘day‘)::interval diffday;

其中当换成这个写法则是按照周进行分组汇总其中当我的查询时间为7号到14号时实际汇总数据就会有差异,实际为7到13号的数据汇总,这是因为默认把7号当周一计算了,当查询条件为8到14则是正常周数据汇总金额。

SELECT SUM(
        f_value
        ) AS "f_produce_value",

      SUBSTR( to_date ( SUBSTR( '20200607', 1, 8 ), 'yyyyMMdd' )::DATE - ( extract ( dow FROM to_date ( SUBSTR( '20200614', 1, 8 ), 'yyyyMMdd' )::TIMESTAMP ) - 7 || 'day' ) :: INTERVAL ,1,10)  week
 
  from t_integral_analysis WHERE
        1=1
        AND f_statistics_time BETWEEN '20200607' 
        AND '20200614' 
        
    GROUP BY week

 

下面就需要改造下,把对应的时间时间进行转换

 

SELECT 
f_statistics_time , -- 当前时间
cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int), -- 获取第几天
to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE - cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int) + 7  week, -- 获取周日期


case cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int) when 0 then to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE else to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE - cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int) + 7 end -- 转换之后日期,若为周日则增加7天换算
 
  from t_integral_analysis WHERE
 1=1
  AND f_statistics_time BETWEEN '20200607' 
  AND '20200614' 

 

 

SELECT SUM(
        f_value
        ) AS "f_produce_value",

     SUBSTR( case cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int) when 0 then to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE else to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE - cast(extract(dow from to_date ( SUBSTR( f_statistics_time, 1, 8 ), 'yyyyMMdd' )::DATE) as int) + 7 end ,1,10) as week
 
  from t_integral_analysis WHERE 1=1
        AND f_statistics_time BETWEEN '20200607' 
        AND '20200614' 
        
    GROUP BY week

当最后把sql这样转换后变成这样则统计的总数据不会遗漏。

这篇关于PGSQL中按照周维度汇总数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817469

相关文章

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

【汇总】vivado_zynq学习资料

DMA:https://www.xilinx.com/support/answers/57550.html

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了

【计算机组成原理】部分题目汇总

计算机组成原理 部分题目汇总 一. 简答题 RISC和CICS 简要说明,比较异同 RISC(精简指令集)注重简单快速的指令执行,使用少量通用寄存器,固定长度指令,优化硬件性能,依赖软件(如编译器)来提升效率。 CISC(复杂指令集)包含多样复杂的指令,能一条指令完成多步操作,采用变长指令,减少指令数但可能增加执行时间,倾向于硬件直接支持复杂功能减轻软件负担。 两者均追求高性能,但RISC

【计算机网络篇】数据链路层(12)交换机式以太网___以太网交换机

文章目录 🍔交换式以太网🛸以太网交换机 🍔交换式以太网 仅使用交换机(不使用集线器)的以太网就是交换式以太网 🛸以太网交换机 以太网交换机本质上就是一个多接口的网桥: 交换机的每个接口考研连接计算机,也可以理解集线器或另一个交换机 当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像