SQLserver中cube多维数据集的示例分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍SQLserver中cube多维数据集的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、cube:生成多维数据集,包含各维度可能组合的交叉表格,使用w
千家信息网最后更新 2025年01月20日SQLserver中cube多维数据集的示例分析
这篇文章主要介绍SQLserver中cube多维数据集的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1、cube:生成多维数据集,包含各维度可能组合的交叉表格,使用with 关键字连接 with cube
根据需要使用union all 拼接
判断 某一列的null值来自源数据还是 cube 使用GROUPING关键字
GROUPING([档案号]) = 1 : null值来自cube(代表所有的档案号)
GROUPING([档案号]) = 0 : null值来自源数据
举例:
SELECT * INTO ##GETFROM (SELECT * FROM ( SELECT CASE WHEN (GROUPING([档案号]) = 1) THEN '合计' ELSE [档案号] END AS '档案号', CASE WHEN (GROUPING([系列]) = 1) THEN '合计' ELSE [系列] END AS '系列', CASE WHEN (GROUPING([店长]) = 1) THEN '合计' ELSE [店长] END AS '店长', SUM (剩余次数) AS '总剩余', CASE WHEN (GROUPING([店名]) = 1) THEN '合计' ELSE [店名] END AS '店名' FROM ##PudianCard GROUP BY [档案号], [店名], [店长], [系列] WITH cube HAVING GROUPING([店名]) != 1 AND GROUPING([档案号]) = 1 --AND GROUPING([系列]) = 1 ) AS M UNION ALL (SELECT * FROM ( SELECT CASE WHEN (GROUPING([档案号]) = 1) THEN '合计' ELSE [档案号] END AS '档案号', CASE WHEN (GROUPING([系列]) = 1) THEN '合计' ELSE [系列] END AS '系列', CASE WHEN (GROUPING([店长]) = 1) THEN '合计' ELSE [店长] END AS '店长', SUM (剩余次数) AS '总剩余', CASE WHEN (GROUPING([店名]) = 1) THEN '合计' ELSE [店名] END AS '店名' FROM ##PudianCard GROUP BY [档案号], [店名], [店长], [系列] WITH cube HAVING GROUPING([店名]) != 1 AND GROUPING([店长]) != 1 ) AS P ) UNION ALL (SELECT * FROM ( SELECT CASE WHEN (GROUPING([档案号]) = 1) THEN '合计' ELSE [档案号] END AS '档案号', CASE WHEN (GROUPING([系列]) = 1) THEN '合计' ELSE [系列] END AS '系列', CASE WHEN (GROUPING([店长]) = 1) THEN '合计' ELSE [店长] END AS '店长', SUM (剩余次数) AS '总剩余', CASE WHEN (GROUPING([店名]) = 1) THEN '合计' ELSE [店名] END AS '店名' FROM ##PudianCard GROUP BY [档案号], [店名], [店长], [系列] WITH cube HAVING GROUPING([店名]) != 1 AND GROUPING([店长]) != 1 ) AS W ) UNION ALL (SELECT * FROM ( SELECT CASE WHEN (GROUPING([档案号]) = 1) THEN '合计' ELSE [档案号] END AS '档案号', CASE WHEN (GROUPING([系列]) = 1) THEN '合计' ELSE [系列] END AS '系列', CASE WHEN (GROUPING([店长]) = 1) THEN '合计' ELSE [店长] END AS '店长', SUM (剩余次数) AS '总剩余', CASE WHEN (GROUPING([店名]) = 1) THEN '合计' ELSE [店名] END AS '店名' FROM ##PudianCard GROUP BY [档案号], [店名], [店长], [系列] WITH cube HAVING GROUPING([店名]) = 1 AND GROUPING([店长]) = 1 AND GROUPING([档案号]) = 1 ) AS K ) ) AS T
2、rollup:功能跟cube相似
3、将某一列的数据作为列名,动态加载,使用存储过程,拼接字符串
DECLARE @st nvarchar (MAX) = '';SELECT @st =@st + 'max(case when [系列]=''' + CAST ([系列] AS VARCHAR) + ''' then [总剩余] else null end ) as [' + CAST ([系列] AS VARCHAR) + '],'FROM ##GETGROUP BY [系列]; print @st;
4、根据某一列分组,分别建表
SELECT 'select ROW_NUMBER() over(order by [卡项] desc) as [序号], [会员],[档案号],[卡项],[剩余次数],[员工],[店名] into ' + ltrim([店名]) + ' from 查询 where [店名]=''' + [店名] + ''' ORDER BY [卡项] desc' FROM 查询 GROUP BY [店名]
以上是"SQLserver中cube多维数据集的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
店名
档案
店长
剩余
数据
次数
多维
示例
分析
关键
关键字
内容
篇文章
查询
相似
代表
价值
会员
兴趣
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
cargo安全服务器
2008数据库有什么不同
电厂网络安全二区
网络安全三个结构ISAP
上海浪潮服务器厂家直供
山西现代化软件开发要多少钱
如果数据库中已有同名的表
小程序数据库属于下表为变量
服务器上好用的安全软件
增加一个数据库
加强 网络安全
网络技术知识答题竞赛
360数据库泄露
网络技术应用工程师
数据库备份文件怎么打开
网络安全心得体会700字
所有网络安全元素里面
梦幻手游钓鱼岛服务器算鬼区不
中船重工702研究所软件开发
莫古力区有哪些服务器好
浦东新区常规软件开发服务报价表
车牌录入数据库账号
阜阳系统软件开发费用
swich怎么连巴西服务器
鼎尖服务器
手绘网络安全广告牌
浙江无线网络技术信息推荐
成都云致网络技术
计算机软件开发项目计划书
国家经济领域内网络安全问题