首页 > 数据库 >Mysql模拟数据

Mysql模拟数据

时间:2024-07-01 11:44:06浏览次数:1  
标签:power UNION -- 模拟 Mysql DATE 数据 id SELECT

模拟SQL

模拟报表数据(每日一条记录)

-- 删除现有临时表(如果存在)
DROP TEMPORARY TABLE IF EXISTS temp_citypower_dates;

-- 创建临时表用于生成模拟数据
CREATE TEMPORARY TABLE temp_citypower_dates (
    city_id INT,
    daytime DATE,
    type INT,
    power DECIMAL(10, 2),
    elecfee DECIMAL(10, 2),
    create_time DATETIME
);

-- 定义变量
SET @city_id = 65; -- 统计的城市id
SET @start_date = '2023-01-01';
SET @end_date = '2023-12-31';
SET @min_power = 10.0;
SET @max_power = 50.0;

-- 插入指定月份的每一天数据,带有随机的power值,每次只能插入100条数据(即每次三个月)
INSERT INTO temp_citypower_dates (city_id, daytime, type, power, elecfee, unit_price, create_time)
SELECT
    @city_id AS city_id,
    DATE_FORMAT(DATE_ADD(@start_date, INTERVAL (t4.i * 10 + t3.i) DAY), '%Y-%m-%d') AS daytime,
    0 AS type,
    ROUND(@min_power + (RAND() * (@max_power - @min_power)), 2) AS power, -- 生成 @min_power 到 @max_power 之间的随机浮动值
    NULL AS elecfee,
    DATE_FORMAT(DATE_ADD(@start_date, INTERVAL (t4.i * 10 + t3.i) DAY), '%Y-%m-%d 12:00:00') AS create_time
FROM 
    (SELECT 0 i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t4,
    (SELECT 0 i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) t3
WHERE 
    DATE_ADD(@start_date, INTERVAL (t4.i * 10 + t3.i) DAY) <= @end_date;

-- 将临时表的数据插入到目标表中,ON DUPLICATE KEY UPDATE 在主键重复时
INSERT INTO `city_power_data` (`city_id`, `daytime`,  `power`,  `create_time`)
SELECT `city_id`, `daytime`,  `power`,  `create_time` FROM temp_citypower_dates ON DUPLICATE KEY UPDATE 
    power = VALUES(power),
    create_time = VALUES(create_time);

select * from temp_citypower_dates;
-- 删除临时表
DROP TEMPORARY TABLE temp_citypower_dates;

标签:power,UNION,--,模拟,Mysql,DATE,数据,id,SELECT
From: https://www.cnblogs.com/aeolian/p/18277738

相关文章

  • 堆数据结构
    堆(Heap)是一种特殊的树形数据结构,通常被实现为一个完全二叉树,以数组的形式存储。堆主要用于实现优先队列,它有两种基本形式:最大堆(MaxHeap)和最小堆(MinHeap)。特点完全二叉树:堆在逻辑上是一个完全二叉树,这意味着除了最后一层外,每一层的节点都是满的,并且最后一层的节点都靠左排列。......
  • DH11温湿度检测模块、lcd1602、HC-08蓝牙构成温湿度数据管理系统
    目录温湿度通过串口上传PC: 温湿度数据管理系统:温湿度通过串口上传PC:sendByte(datas[0]/10+0x30);sendByte(datas[0]%10+0x30);这两行代码用于将一个字节(是DHT11传感器读取的湿度或温度的整数部分)转换为两个ASCII字符,并通过UART串口发送出去。+0x30:在ASCII......
  • JDBC中的元数据是什么?如何获取?
    JDBC中的元数据(MetaData)是关于数据的数据,它描述了数据库的结构、表的结构、列的数据类型、存储过程、支持的SQL语法和数据库产品的版本等信息。元数据在JDBC中主要通过DatabaseMetaData和ResultSetMetaData两个接口来获取。1.DatabaseMetaDataDatabaseMetaData接口提供了关......
  • 【408考点之数据结构】排序的基本概念
    排序的基本概念排序是计算机科学中的一个基本操作,目的是将一组无序的数据元素按照特定的顺序排列起来。排序在数据管理、检索和分析中有着广泛的应用,能够提高数据处理的效率和准确性。1.排序的定义排序(Sorting)是指将一组记录按某个关键字或多个关键字的大小关系进行排列......
  • 【408考点之数据结构】顺序查找和折半查找
    顺序查找和折半查找在数据处理中,查找操作是非常重要的一部分。顺序查找和折半查找是两种常见的查找方法,它们各有优缺点和适用场景。以下是对这两种查找方法的详细介绍。1.顺序查找定义:顺序查找(SequentialSearch),也称线性查找,是一种最简单、最直接的查找方法。它从数据集......
  • pandas数据分析预测,报告加数据集和代码文件
    利用Pandas与相关可视化库完成数据的分析、处理与可视化任务,并利用KNN、决策树、随机森林等算法对数据进行分类或预测。数据选题应具有正面积极的意义,可从以下大类方向中选取:·信息类·金融类·交通类·食品安全类·体育类·健康信息·商品类评分细则:·Pan......
  • 全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装
    全网最适合入门的面向对象编程教程:06类和对象的Python实现-自定义类的数据封装摘要:本文我们主要介绍了数据封装的基本概念和特性,如何设置自定义类的私有属性和私有方法,protect属性的概念和特点。往期推荐:学嵌入式的你,还不会面向对象??!全网最适合入门的面向对象编程教程:00......
  • [淘宝/天猫/1688/京东]API接口数据采集分享
    在当今时代,从数据中挖掘价值的重要性愈发凸显,远超以往任何时期。随着新冠疫情的席卷,所有B2B公司都迎来了前所未有的挑战,它们不得不迅速将业务转移到线上的电子商务平台,以加速数字化转型的步伐。而随着疫情的逐渐缓解,这种线上线下的融合趋势非但没有减弱,反而得到了进一步的强化。......
  • mysql 主从一致性检测与修复
    percona-toolkit下载需要安装的依赖包[centos7]yum-yinstallperl-Digest-MD5perl-DBIperl-DBD-MySQL--nogpgcheck--disablerepomysql80-community--enablerepomysql57-community原理将一张大表分成多个chunk,每次针对一个chunk进行校验,同时将校验的结果通过REPL......
  • 探秘数据库中的并行计算技术应用
    本文分享自华为云社区《【GaussTech技术专栏】数据库中并行计算技术应用探秘》,作者:GaussDB数据库。并行计算是提高系统性能的重要手段之一。该技术是通过利用多台服务器、多个处理器、处理器中的多核以及SIMD指令集等技术,实现任务的并行化处理,从而加快任务处理的速度。同时,在多个......