首页 > 数据库 >关于SQL假数据生成

关于SQL假数据生成

时间:2024-03-20 10:11:56浏览次数:25  
标签:COMMENT num time 生成 phone client 关于 SQL NULL

 

客户端连接手机数量历史记录表:

CREATE TABLE `xw_client_phone_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `client_user_name` varchar(255) DEFAULT NULL COMMENT '客户端用户名',
  `brand_code` varchar(255) DEFAULT NULL COMMENT '品牌编码',
  `computer_id` varchar(255) DEFAULT NULL COMMENT '电脑标识',
  `phone_num` int(11) DEFAULT NULL COMMENT '连接手机数量',
  `create_time` date DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_bcd` (`create_time`,`brand_code`,`computer_id`) USING BTREE COMMENT '每台电脑每个品牌每日唯一索引',
  KEY `idx_brand` (`brand_code`) USING BTREE COMMENT '品牌标识索引',
  KEY `idx_computer` (`computer_id`) USING BTREE COMMENT '电脑标识索引'
) ENGINE=InnoDB AUTO_INCREMENT=263167 DEFAULT CHARSET=utf8mb4 COMMENT='客户端连接手机数量历史记录表';

假数据:

SET @counter = 0;

-- Generate fake data
INSERT INTO xw_client_phone_history (client_user_name, brand_code, computer_id, phone_num, create_time, update_time, remark)
SELECT
    CONCAT('client_', FLOOR(RAND() * 100)), -- 生成随机的客户端用户名
    CONCAT('brand_', FLOOR(RAND() * 100)), -- 生成随机的品牌编码
    CONCAT('computer_', FLOOR(RAND() * 500)), -- 生成随机的电脑标识
    FLOOR(RAND() * 60), -- 生成随机的连接手机数量
    DATE_SUB(CURDATE(), INTERVAL FLOOR(RAND() * 90) DAY), -- 在最近三个月内生成随机日期
    NOW(), -- 当前时间戳作为更新时间
    CONCAT('Remark for record ', @counter) -- 备注
FROM
    information_schema.tables AS t1,
    information_schema.tables AS t2
ON DUPLICATE KEY UPDATE
    phone_num = VALUES(phone_num), -- 如果存在重复的唯一键,则更新连接手机数量
    update_time = NOW(), -- 更新时间戳
    remark = CONCAT('Updated remark for record ', @counter); -- 更新备注

-- Reset counter
SET @counter = 0;

 

统计表:

CREATE TABLE `xw_client_statistical` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `client_user_num` int(11) NOT NULL DEFAULT '0' COMMENT '新增客户端用户数量',
  `computer_num` int(11) NOT NULL DEFAULT '0' COMMENT '新增电脑数量',
  `phone_num` int(11) NOT NULL DEFAULT '0' COMMENT '新增连接手机数量',
  `stat_date` date NOT NULL COMMENT '统计数据的日期',
  `stat_type` int(11) NOT NULL DEFAULT '1' COMMENT '统计类型 1天 2月 3年',
  `create_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建日期',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `idx_stat` (`stat_date`)
) ENGINE=InnoDB AUTO_INCREMENT=262270 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理服务-客户端记录统计表';

统计sql

-- 将 xw_client_phone_history 表中的数据统计到 xw_client_statistical 表中
INSERT INTO xw_client_statistical (client_user_num, computer_num, phone_num, stat_date, stat_type, create_time, remark)
SELECT
    COUNT(DISTINCT client_user_name) AS client_user_num,
    COUNT(DISTINCT computer_id) AS computer_num,
    SUM(phone_num) AS phone_num,
    create_time AS stat_date,
    1 AS stat_type,
    CURRENT_TIMESTAMP AS create_time,
    '每日统计' AS remark
FROM
    xw_client_phone_history
GROUP BY
    create_time;

-- 如果已存在统计记录,则更新现有的统计记录
INSERT INTO xw_client_statistical (client_user_num, computer_num, phone_num, stat_date, stat_type, create_time, remark)
SELECT
    COUNT(DISTINCT client_user_name) AS client_user_num,
    COUNT(DISTINCT computer_id) AS computer_num,
    SUM(phone_num) AS phone_num,
    create_time AS stat_date,
    1 AS stat_type,
    CURRENT_TIMESTAMP AS create_time,
    '每日统计' AS remark
FROM
    xw_client_phone_history
WHERE
    create_time NOT IN (SELECT stat_date FROM xw_client_statistical WHERE stat_type = 1);

-- 注意:上述查询假定 xw_client_phone_history 中的 'create_time' 是每日统计的日期。如果不是这种情况,请调整查询。

 

标签:COMMENT,num,time,生成,phone,client,关于,SQL,NULL
From: https://www.cnblogs.com/meijsuger/p/18084607

相关文章

  • Cannot resolve com.microsoft.sqlserver:sqljdbc4:4.0解决方案
    问题:<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version></dependency>爆红解决方案1手动下载jar包MavenRepository:com.microsoft.sqlserver»sqljdbc4»4.0......
  • 040_Windows下MySQL定时备份
    目录定时备份脚本计划任务定时执行定时备份脚本remauther:zhyqremdate:20220929rem******BackupMySQLStart******@echooff::设置时间变量set"Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"::创建存储的文件夹ifnotexist"C:\mysql_backup"md"C:\mysql_backup"......
  • 关于linux类系统的操作
    命令杂项主要记录我不知道的指令~:波浪号主要是对应登陆账号的路径,比如用root登陆~特指/root目录>>:双箭头表示从什么文件添加到什么文件的末尾,比如a.txt>>b.txt就是把a的内容追加到b的末尾>:单箭头是覆写,比如a.txt>b.txt,就是把a的内容复制到b的内容,b的内容会全......
  • Open Sora 发布!开源的高效复现类 Sora 视频生成方案
    不久前OpenAISora的发布可以说是震惊了世界,但是奈何目前OpenAI还未将Sora开放公测,但在昨天,我们却等来了OpenSora1.0的发布,这是Colossal-AI团队的一个完全开源的视频生成项目,致力于高效制作高质量视频,并使所有人都能使用其模型、工具和内容的计划。通过采用开......
  • 提高 SQL Server 使用技巧的有效方法
    简介:在日益复杂的数据库环境中,有效地利用SQLServer是每个开发人员和数据库管理员的重要任务。本文将介绍一些实用的技巧,帮助你提高在SQLServer上的工作效率,并优化代码的可读性和性能。1.提高SQLServer存储过程可读性的技巧在SQLServer中编写存储过程时,保持......
  • 关于Redis缓存原理详解
    最近都没看Redis,现在回来温习下,现在从Redis的三大缓存开始重新探一探有多深有多浅(^▽^)  让我来开始知识的醍醐灌顶把!是时候表演真正的技术了。(哔哔哔哔….)  铁子们,看在这么卖力的份上,如果觉得本文对你有帮助的话,请动动你的小手,点个赞哟。接下来就开始我们的Redis的......
  • 浏览器脚本:获取MOKA简历中的手机号码自动生成二维码方便手机扫描拨号
    效果演示:对其中隐私部分已经隐藏,请自行测试JS控制台代码:letlastPhoneNumber='';constcheckPhoneNumber=()=>{constelements=document.querySelectorAll('[class*="sd-Icon-iconmobile"]');elements.forEach(element=>{cons......
  • es6关于class在js和ts中的的一些理解
    关于class在js和ts中的的一些理解js中:classHuman{//加上static该属性只能通过Human类去获取;//不加static该属性可以通过实例去获取其实等同于写在consturctor里面。只不过是写死的,不能自定义statichobby="吃饭";constructor(name,age){th......
  • MySQL8设置允许简单密码
    [https://blog.51cto.com/u_16175454/9981004#:~:text=MySQL8设置允许简单密码1登录MySQL数据库首先,使用root用户登录到MySQL数据库。mysql-u,5刷新权限在修改后,需要刷新权限使更改生效。...6验证设置最后,验证设置是否生效。](https://blog.51cto.com/u_16175454/99......
  • CMeet系列技术生态沙龙---《探索未来:生成式AI赋能千行百业·杭州》
    当前数字化浪潮下,生成式AI技术正成为推动产业升级、提升竞争力的关键力量。为深入探索未来AI技术的赋能作用,促进技术生态的繁荣与发展,CSDN-CMeet系列沙龙活动旨在搭建一个交流与探索的平台,通过分享前沿研究成果和应用案例,激发广大程序员们的创新思维,为所在行业注入新的活力......