news 2026/6/9 23:35:28

SSAS - 生成模拟测试数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SSAS - 生成模拟测试数据

在分析系统中,因为数据量太大,无法直观看出统计结果的正确性。在使用新技术时,需要使用简单的数据,来验证语句的结果。本文介绍SQL Server生成模拟数据的方法。

使用技术

一、静态数据:VALUES

  1. 使用说明
  • 格式:VALUES (列1值, 列2值, 列3值), (列1值2, 列2值2, 列3值2)…
  • 命名:AS 表名(列1名, 列2名, 列3名),列的数量和顺序必须和 VALUES 里的一致
  • 类型:SQL Server 会自动推断列的数据类型(如数字、字符串、小数),也可手动指定(如 CAST(‘产品A’ AS VARCHAR(20)))。
  1. 示例
SELECT*FROM(VALUES(1,'张三','销售部',8000.00),(2,'李四','技术部',9500.50),(3,'王五','财务部',7800.80))ASEmployees(Id,Name,Department,Salary);
  1. 结果
IdNameDepartmentSalary
1张三销售部8000.00
2李四技术部9500.50
3王五财务部7800.80

二、序列数据:master.dbo.spt_values

  1. 使用说明
    利用 spt_values 生成时间序列:master.dbo.spt_values 中 type = ‘P’ 的记录包含连续的数字(0-2047),可以用它来生成 N 个月份的序列(对应 2024-2025 年)。

  2. 示例

SELECTnumberASId,DATEADD(MONTH,number,'2024-01-01')AS[Date]FROMmaster.dbo.spt_valuesWHEREtype='P'ANDnumberBETWEEN0AND23
  1. 结果
IdDate
02024-01-01 00:00:00.000
12024-02-01 00:00:00.000
22024-03-01 00:00:00.000
232025-12-01 00:00:00.000

三、随机数字:ABS(CHECKSUM(NEWID()))

  1. 使用说明
  • ABS(CHECKSUM(NEWID())):核心作用是生成一个随机的 32 位整数(非负数),常用来快速生成无规律的随机数,是 SQL Server 中生成随机整数的经典写法。
  • NEWID():创建一个全球唯一的UNIQUEIDENTIFIER类型值(GUID/UUID),格式如E2B5D86C-7B9F-4A8D-9876-1234567890AB。每次执行都会生成完全不同的值。
  • CHECKSUM():计算哈希值,对输入的任意值计算一个 32 位的整数校验和(哈希值),返回值是INT类型,范围为-21474836482147483647(可能是正数或负数)。
  • ABS():取绝对值
  1. 示例
SELECTABS(CHECKSUM(NEWID())),ABS(CHECKSUM(NEWID())),ABS(CHECKSUM(NEWID()))
  1. 结果
82013466315905810271359169063

实际应用

一、生成2025年目标数据

  1. 语句
SELECTDATEADD(MONTH,sv.number,'2025-01-01')ASDate,p.ProductId,ABS(CHECKSUM(NEWID()))%1000+100ASQuantity,(ABS(CHECKSUM(NEWID()))%1000+100)*10ASTotalFROMmaster.dbo.spt_values svCROSSJOIN(VALUES(101),(102),(103))ASp(ProductId)WHEREsv.type='P'ANDsv.numberBETWEEN0AND11ORDERBYDate,ProductId;
  1. 结果
DateProductIdQuantityTotal
2025-01-01 00:00:00.00010110114210
2025-01-01 00:00:00.0001024098650
2025-01-01 00:00:00.0001036849420
2025-02-01 00:00:00.0001012714340
2025-02-01 00:00:00.0001024116420
2025-02-01 00:00:00.0001032967140
2025-12-01 00:00:00.0001016424680
2025-12-01 00:00:00.00010210033790
2025-12-01 00:00:00.0001031596500
  1. 说明
  • 月份采用日期表示,以与实际完成数据维度对齐
  • 数量通常改为固定值,以方便在测试时判断统计是否正确
  • 用于SSAS命名查询,需去掉order by。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 20:06:06

RocksDB 可直接运行的实战示例(多语言 + 完整安装 + 基础 CRUD + 事务 + 生产调优)

包含 C++(原生最优)、Java (企业级主流)、Python (快速上手) 三种最常用语言的完整代码,所有示例复制即可运行,涵盖你需要的「安装步骤、基础读写、事务操作、生产级调优参数」,优先级从高到低排序,按需选择即可。 核心前提:RocksDB 是嵌入式键值库,所有操作都是本地库调…

作者头像 李华
网站建设 2026/6/3 8:20:19

SSM222的大学生兼职系统

目录SSM222大学生兼职系统摘要开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!SSM222大学生兼职系统摘要 针对大学生兼职需求分散、信息不对称等问题,设计并实现基于SSM框架的大学生兼职系统。系统采用SpringSpring…

作者头像 李华
网站建设 2026/6/7 9:34:47

Daz To Blender 跨平台创作全攻略:从零开始实现角色无缝迁移

Daz To Blender 跨平台创作全攻略:从零开始实现角色无缝迁移 【免费下载链接】DazToBlender Daz to Blender Bridge 项目地址: https://gitcode.com/gh_mirrors/da/DazToBlender 还记得那个让你心动的3D角色吗?在Daz Studio中精心雕琢的每一个细节…

作者头像 李华
网站建设 2026/6/10 2:03:01

【深度好文】Skills完全指南:万字详解从入门到精通,建议收藏备用

Skills是Anthropic推出的模块化能力包系统,通过渐进式披露机制实现按需加载,大幅提升Token效率。文章详细介绍了Skills的概念、与MCP/Subagent的区别、创建方法、最佳实践和安全注意事项,展示了如何构建个人Skills库。Skills正在成为AI Agent…

作者头像 李华
网站建设 2026/6/10 14:04:59

从零部署Testsigma:开源自动化测试平台实战指南

从零部署Testsigma:开源自动化测试平台实战指南 【免费下载链接】testsigma A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs. Build stable and reliable end-to-end tests DevOps speed. 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/6/10 17:20:39

基于Springboot+Vue的社区智能垃圾管理系统(源码+lw+部署文档+讲解等)

课题介绍 本课题针对社区垃圾分类推行难、投放监管低效、垃圾清运调度无序、居民参与度不足等痛点,设计并实现基于SpringbootVue的社区智能垃圾管理系统,构建集分类引导、投放监管、清运调度、数据统计于一体的智能化社区垃圾管控平台。系统采用前后端分…

作者头像 李华