首页 > 数据库 >SQL查折线图数据

SQL查折线图数据

时间:2024-04-22 11:24:14浏览次数:20  
标签:count 04 sequence 2024 date 日期 SQL 折线图 数据

在做后台管理系统的时候,有很大概率是要与各种图表数据打交道,

那么如何通过SQL查出基本图表的数据呢,以折线图为例,

 X轴为日期,Y轴为统计数据,那么我们通过SQL如何查询出连续日期下的统计数据呢,

假设我们数据库有一张表为 A,A表有createdAt,count字段,count表示数量,createdAt表示生成数据的日期,

A表中可能存了多条相同日期但是不同数量的数据,比如:

| createdAt  | count |

| 2024-04-01 | 1 |

| 2024-04-01 | 12 |

| 2024-04-02 | 1 |

那么我想查询从4月1到4月7的统计数据,并保证日期连续性,2024-04-01 2024-04-02 ... 2024-04-07,这里用PostgreSQL 来实现

 

WITH date_sequence AS (
    SELECT start_date + sequence_num AS continuous_date
    FROM (SELECT '2024-04-01'::date AS start_date, generate_series(0, 9) AS sequence_num) AS dates
)
SELECT continuous_date,COALESCE(SUM(count),0) AS count
FROM date_sequence
LEFT JOIN (SELECT id, TO_CHAR("createdAt", 'YYYY-MM-DD')::date AS date1 FROM "A") AS subquery 
ON date_sequence.continuous_date = subquery.date1
GROUP BY continuous_date
ORDER BY continuous_date ASC

 

解释:

generate_series 用于生成一个数字列,在PostgreSQL中,对日期数据进行运算操作,会使日期进行对应的变更,如:

 然后用WITH 将这个日期列封装一下,然后再去LEFT JOIN查A表,用日期进行关联,因为A表中会有重复的,所以我们用“日期”字段进行GROUP BY ,再通过SELECT SUM("count")字段,就能查出日期列对应的数据了,然后再用 COALESCE 函数将为null的数据填充为0就好了

最后查出的数据就是这样子的:

 

标签:count,04,sequence,2024,date,日期,SQL,折线图,数据
From: https://www.cnblogs.com/alone4436/p/18150261

相关文章

  • 海量数据频繁插入和查询解决方案
    一、关系型数据库(RDBMS)使用像MySQL、PostgreSQL或者Oracle这样的关系型数据库。它们具有成熟的事务处理、ACID(原子性、一致性、隔离性、持久性)特性和SQL查询语言。但是,在面对海量数据时,可能会遇到性能瓶颈。二、NoSQL数据库NoSQL数据库,如MongoDB、Cassandra、Redis等,专为大规模......
  • [数据库] 排查MySQL锁表情况及解决思路 [转]
    0序1排查方法:查看当前锁表事务由于出现的是锁表的问题,所以第一步从数据库入手,查看导致锁表的SQL语句是什么;查看是否锁表SQL语句;SELECT*FROMINFORMATION_SCHEMA.INNODB_LOCKS;该命令的输出结果包含了当前事务等待的锁资源的相关信息,包括事务ID、锁的类型、锁的模式、被......
  • 数据湖问题记录跟进
    一、问题追踪问题详细描述提出问题时间是否完成计划完成时间备注了解Iceberg数据存储方式了解元数据存储信息、数据组织方式、查询时处理流程等20231013是20231019!!!20231124前均为大致的时间调研报告:调研报告-基于Iceberg构建湖仓一体平台调......
  • docker安装mysql
    下载最新的官方镜像dockerpullmysql:latest启动mysqldockerrun-d-p3306:3306\--privileged=true\-v/app/mysql/log:/var/log/mysql\-v/app/mysql/data:/var/lib/mysql\-v/app/mysql/conf:/etc/mysql/conf.d\......
  • 前端页面渲染(文档+数据)不同模式
    一张可被用户访问的页面,可以被拆分为主文档(html)和数据两个部分,这两个部分既可以是组合在一起的(SSR),也可以是分离的(SPA、异步渲染)。比如一些活动搭建平台,可以增加一个数据网关,实现SSR,提升用户体验。服务端渲染(Server-SideRendering,SSR)服务端渲染是一种在服务器上生成完整......
  • 物理隔离条件下的数据安全导入导出方案,哪种最安全可控?
    数据安全在当今信息化社会中扮演着至关重要的角色,尤其像政府、军工等单位,有比较多的核心数据要保护,一旦出现数据泄漏,将造成不可估量的后果。因此为了保护数据安全,政府、军工等单位一般会采取纯物理隔离,隔离后再通过导入导出工具,将数据安全导入导出。在实现纯物理隔离的内外网环......
  • PL_SQL常用快捷键
    本文摘自:https://www.cnblogs.com/Ronson-Shen/p/3939798.html1、快速输入;Tools-->Preferences-->UserInterface-->Editor-->AutoReplace,将Enabled复选框的按钮勾选上,点击那个文件路,选中设置快键方式的文件,如下面的shortcuts.txt文件所示,然后再输入的时候按下对应的快键键,然后......
  • mysql
    Mysql的基本架构是什么样的?MySQL大致可以分为server层和存储引擎层两部分Server层包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据存储和提取,支持InnoDB、MyISAM、Memory等多个存储引......
  • 基于大数据的房产估价
    一、实验目的与要求1、掌握使用numpy和pandas库处理数据的基本方法。2、掌握使用Sklearn库对多元线性回归算法的实现及其评价方法。3、掌握使用matplotlib结合pandas库对数据分析可视化处理的基本方法。二、实验内容1、利用python中pandas等库完成对数据的预处理,最后将处理好......
  • redis list数据结构操作学习
    转自:https://zhuanlan.zhihu.com/p/765785471.插入元素>rpushmylistA#从右侧插入(integer)1>rpushmylistB(integer)2>lpushmylistfirst(integer)3>lrangemylist0-1//这里使用0-1表示显示所有元素,注意是:0空格-1,0代表第一个元素,-1代表最后......