MySQL查询几天内每天的数据折线图

博客内容展示了如何使用MySQL查询最近七天每天的数据,强调了在查询中加入'Group By'时间字段的重要性,以确保即使某天无数据也会显示。内容还包含了Markdown编辑器的使用教程和各种功能快捷键。
摘要由CSDN通过智能技术生成

MySQL查询几天内每天的数据

折线图需要查询到最近七天内的每天的数据以及近七天的日期返回给前端:

下面是之前的sql,得到的数量是总和,并不是某一天的具体数量

在这里插入图片描述

  • 任务完成
    这个SQL也可以得出哪一天有多少数量,但是如果某天没有数据他就不显示那一天了,不符合业务
SELECT DATE_FORMAT(CREATE_DATE,'%Y-%m-%d') as time,count(*)  from visit_log  
WHERE LOG_TYPE = 'VIEW' && LOG_MODULAR = 'CARD' and DEPT_ID = '2a8d6f4cbd564a14bcabb76447702052' 
GROUP BY time;

经过查阅发现只需要简单的加上一个’ Group By 时间 ’ 进行分组就可以了,如下
代码片:

<select id="qryDeptViewShop" resultType="java.util.Map">
            select a.click_date AS time, ifnull(b.count,0) as count
            from (
            SELECT date_sub(curdate(), interval 0 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 1 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 2 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 3 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 4 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 5 day) as click_date
            union all
            SELECT date_sub(curdate(), interval 6 day) as click_date
            ) a left join (
            SELECT date(log1.CREATE_DATE) as datetime ,COUNT(1) as count FROM visit_log log1
            where log1.LOG_TYPE = 'PAY_SHOP' and log1.DEPT_ID = #{
   deptId} group by datetime
            ) b on a.click_date = b.datetime order by time desc;
    </select>

得出结果:
在这里插入图片描述

参考文章
链接: 一周内的数量
每日每周每月的数量

下面为练习markdown编辑器

之前的SQL
标记文本
删除文本
H2O is是液体。
210 运算结果是 1024.

图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Co

查询每天数据并生成折线图,可以使用MySQL的日期函数和聚合函数来实现。以下是一个示例查询和生成折线图的步骤: 1. 首先,假设你有一个名为`data`的表,其中包含日期(date)和数据值(value)两列。 2. 使用以下查询语句按日期分组并计算每天数据总和: ```sql SELECT DATE(date) AS day, SUM(value) AS total FROM data GROUP BY DATE(date) ``` 这将返回一个结果集,其中包含每天的日期和对应的数据总和。 3. 将查询结果导出到CSV文件中,以便稍后使用绘图工具生成折线图。可以使用MySQL的`SELECT ... INTO OUTFILE`语句将结果导出为CSV文件: ```sql SELECT DATE(date) AS day, SUM(value) AS total FROM data GROUP BY DATE(date) INTO OUTFILE '/path/to/output.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; ``` 确保将`/path/to/output.csv`替换为你希望保存文件的实际路径。 4. 使用绘图工具(如Python的matplotlib库)读取CSV文件并生成折线图。以下是使用Python和matplotlib绘制折线图的示例代码: ```python import pandas as pd import matplotlib.pyplot as plt # 读取CSV文件 data = pd.read_csv('/path/to/output.csv') # 将日期列转换为日期时间格式 data['day'] = pd.to_datetime(data['day']) # 绘制折线图 plt.plot(data['day'], data['total']) plt.xlabel('Date') plt.ylabel('Total') plt.title('Daily Data') plt.show() ``` 确保将`/path/to/output.csv`替换为导出的CSV文件的实际路径。 通过执行以上步骤,你将能够查询每天数据并生成相应的折线图。请注意,绘图工具可以根据你的需求进行自定义和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值