当前位置: 首页 > article >正文

如何在Mysql中生成0-23完整的小时数据

目录

  • 1. 创建表
  • 2. 插入0-23小时的数据
  • 3. 查询并合并数据

请添加图片描述

在数据分析中,我们经常需要对特定时间段内的数据进行统计和分析。
例如,在名片进线的场景中,我们可能需要了解一天内每小时的名片进线数量。
然而,由于某些时间点可能没有数据记录,这会导致数据的不连续性。为了解决这个问题,我们需要生成一个0-23小时的完整数据集,即使在没有进线的情况下,也显示为0,以确保数据的完整性和分析的准确性。


1. 创建表

首先,我们需要创建一个表来存储0-23小时的数据。这个表将只包含一个hour列,用于表示小时数。

CREATE TABLE IF NOT EXISTS hourly_data (
    hour INT NOT NULL,
    PRIMARY KEY (hour)
);

2. 插入0-23小时的数据

接下来,我们将0-23小时的数据插入到hourly_data表中。这里我们使用23条INSERT语句,每条语句插入一个小时的数据。

INSERT INTO hourly_data (hour) VALUES (0);
INSERT INTO hourly_data (hour) VALUES (1);
INSERT INTO hourly_data (hour) VALUES (2);
INSERT INTO hourly_data (hour) VALUES (3);
INSERT INTO hourly_data (hour) VALUES (4);
INSERT INTO hourly_data (hour) VALUES (5);
INSERT INTO hourly_data (hour) VALUES (6);
INSERT INTO hourly_data (hour) VALUES (7);
INSERT INTO hourly_data (hour) VALUES (8);
INSERT INTO hourly_data (hour) VALUES (9);
INSERT INTO hourly_data (hour) VALUES (10);
INSERT INTO hourly_data (hour) VALUES (11);
INSERT INTO hourly_data (hour) VALUES (12);
INSERT INTO hourly_data (hour) VALUES (13);
INSERT INTO hourly_data (hour) VALUES (14);
INSERT INTO hourly_data (hour) VALUES (15);
INSERT INTO hourly_data (hour) VALUES (16);
INSERT INTO hourly_data (hour) VALUES (17);
INSERT INTO hourly_data (hour) VALUES (18);
INSERT INTO hourly_data (hour) VALUES (19);
INSERT INTO hourly_data (hour) VALUES (20);
INSERT INTO hourly_data (hour) VALUES (21);
INSERT INTO hourly_data (hour) VALUES (22);
INSERT INTO hourly_data (hour) VALUES (23);

3. 查询并合并数据

最后,我们需要查询并合并数据。我们将使用SELECT语句,通过LEFT JOINhourly_data表和business_cards表结合起来,以确保每个小时都有数据,即使某些小时没有进线数据也显示为0。

SELECT a.hour, IFNULL(b.business_card_count, 0) AS business_card_count
FROM hourly_data a
LEFT JOIN (
    SELECT HOUR(create_time) AS hour, COUNT(*) AS business_card_count
    FROM business_cards
    GROUP BY HOUR(create_time)
) b ON a.hour = b.hour
ORDER BY a.hour;

通过这种方法,我们可以确保无论原始数据中是否存在缺失,我们都能获得一个完整的0-23小时数据链路,为进一步的数据分析和业务决策提供坚实的基础。这种方法不仅简单易懂,而且执行效率高,适用于各种规模的数据集。
请添加图片描述


http://www.kler.cn/a/399546.html

相关文章:

  • 性能超越Spark 13.3 倍,比某MPP整体快数十秒 | 多项性能指标数倍于主流开源引擎 | 云器科技发布性能测试报告
  • 【Pytorch】IPython库中的display函数
  • python语言基础-5 进阶语法-5.2 装饰器-5.2.2 简单装饰器
  • 编写一个生成凯撒密码的程序
  • 探索美赛:从准备到挑战的详细指南
  • 腾讯云内容合规基于springboot架构设计
  • Docker:查看镜像里的文件
  • 【Android】Android滑动冲突解决方案
  • Android 13 实现屏幕熄屏一段时候后关闭 Wi-Fi 和清空多任务列表
  • UnoCss 安装
  • 【前端知识】Vue组件Vuex详细介绍
  • Ceph层次架构分析
  • 【日志】力扣11.盛水最多的容器
  • git配置用户信息
  • 使用Aria2实现离线下载
  • 【策略模式】最佳实践——Spring IoC实现策略模式全流程深度解析
  • Java——并发工具类库线程安全问题
  • 【LeetCode热题100】字符串
  • C#编程:优化【性别和成绩名次】均衡分班
  • 一文了解Android的核心系统服务
  • 使用 Keras 训练一个卷积神经网络(CNN)(入门篇)
  • L11.【LeetCode笔记】有效的括号
  • 代码随想录算法训练营第四十七天|Day47 单调栈
  • 2022数学分析【南昌大学】
  • mini-jquery
  • Python数据分析NumPy和pandas(三十五、时间序列数据基础)