《Microsoft SQL Server 2008 MDX Step by Step》学习笔记七:执行聚合(上)

AI使能的SVD算子:基于深度学习的矩阵分解方法 奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解方法,广泛应用于信号处理、数据降维、推荐系统等领域。传统SVD算法虽然精确,但在处理大规模矩阵时面临计算复杂度高、内存需求大等问题。本文提出了一种基于深度学习神经网络的SVD算子实现方法,完全摒弃传统数值算法,仅使用PyTorch框架构建的神经网络模型来完成大规模信道矩阵的SVD分解与还原。 阅读详情

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引

导读:本文介绍执行聚合(Aggregation)的进阶内容,包括:

■1、用Sum和Aggregation执行求和

■2、用Avg函数计算均值

■3、用表达式计算均值

■4、用Stedv计算标准偏差

本文所用数据库和所有源码,请到微软官网下载

1、执行求和

MDX的聚合函数:Aggregation(http://msdn.microsoft.com/zh-cn/library/ms145524.aspx)

求和还有一个函数:Sum(http://msdn.microsoft.com/zh-cn/library/ms145484.aspx)

我们依旧从一个最简单的例子看起

例7-1

SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Transaction Count]),
([Measures].[Reseller Order Count])
} ON COLUMNS,
TopCount(
{[Product].[Subcategory].[Subcategory].Members},
5,
([Measures].[Reseller Sales Amount])
) +
{([Product].[Subcategory].[All Products])} ON ROWS
FROM [Step-by-Step]
;

需要说明的是:上例中,[Reseller Sales Amount]代表这个表中Sales Amount字段的数量,[Reseller Transaction Count]代表底层事实表数据记录的数值,[Reseller Order Count]代表底层事实表的订单数。

查询结果如下:

邀月工作室

下面我们增加对subcategory进行TopCount 5 求和

例7-2

WITH
MEMBER [Product].[Subcategory].[Top 5] AS
Sum(
TopCount(
[Product].[Subcategory].[Subcategory].Members,
5,
([Measures].[Reseller Sales Amount])
),
([Measures].CurrentMember)
)
SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Transaction Count]),
([Measures].[Reseller Order Count])
} ON COLUMNS,
TopCount(
[Product].[Subcategory].[Subcategory].Members,
5,
([Measures].[Reseller Sales Amount])
) +
{
([Product].[Subcategory].[Top 5]),
([Product].[Subcategory].[All Products])
} ON ROWS
FROM [Step-by-Step]
;

结果如下:
邀月工作室

前两列是累加的,因而没有问题,最后一列Reseller Order Count不是从五个分类中累加的,而是对所有产品中的子分类的订单进行汇总。很显然,这不是我们想要的结果,此时,我们需要借助于Aggregation函数

例7-3

WITH
MEMBER [Product].[Subcategory].[Top 5] AS
Aggregate(
TopCount(
[Product].[Subcategory].[Subcategory].Members,
5,
([Measures].[Reseller Sales Amount])
),
([Measures].CurrentMember)
)
SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Transaction Count]),
([Measures].[Reseller Order Count])
} ON COLUMNS,
TopCount(
[Product].[Subcategory].[Subcategory].Members,
5,
([Measures].[Reseller Sales Amount])
) +
{
([Product].[Subcategory].[Top 5]),
([Product].[Subcategory].[All Products])
} ON ROWS
FROM [Step-by-Step]
;

邀月工作室

Tips:在求和时,我们通常应该使用Aggregion,而非Sum。当然,这并非绝对。

2、用AVG函数计算均值

MDX中的求均值函数为Avg(http://msdn.microsoft.com/zh-cn/library/ms146067.aspx)

我们还是从一个最简单的例子入手:

例7-4

SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
} ON ROWS
FROM [Step-by-Step]
;

邀月工作室

下面我们求均值

例7-5

WITH
MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS
Avg(
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
},
[Measures].CurrentMember
)
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
{([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales])} +
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
} ON ROWS
FROM [Step-by-Step]
;

结果:

邀月工作室

加上季度数据

例7-6

WITH
MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS
Avg(
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
},
[Measures].CurrentMember
)
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
{([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales])} +
Hierarchize(
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
} +
{
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:
[Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]
}
) ON ROWS
FROM [Step-by-Step]
;

邀月工作室

加上季度平均:

例7-7

WITH
MEMBER [Date].[Calendar].[CY 2003 Quarterly Avg Reseller Sales] AS
Avg(
{
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:
[Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]
},
[Measures].CurrentMember
)
MEMBER [Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales] AS
Avg(
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
},
[Measures].CurrentMember
)
SELECT
{([Measures].[Reseller Sales Amount])} ON COLUMNS,
{
([Date].[Calendar].[CY 2003 Monthly Avg Reseller Sales]),
([Date].[Calendar].[CY 2003 Quarterly Avg Reseller Sales])
} +
Hierarchize(
{
[Date].[Calendar].[Month].[January 2003]:
[Date].[Calendar].[Month].[December 2003]
} +
{
[Date].[Calendar].[Calendar Quarter].[Q1 CY 2003]:
[Date].[Calendar].[Calendar Quarter].[Q4 CY 2003]
}
) ON ROWS
FROM [Step-by-Step]
;

注意:AVG是一个静态函数,那么,如果是动态的表达式求均值,用什么方法?

3、用表达式计算均值

例7-8

SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Order Count])
} ON COLUMNS,
{
[Date].[Calendar Year].[CY 2001]:
[Date].[Calendar Year].[CY 2004]
} ON ROWS
FROM [Step-by-Step]
;

邀月工作室

下面我们加上每年的月均值,这是动态计算的:

例7-9

WITH
MEMBER [Measures].[Monthly Avg Reseller Sales Amount] AS
Avg(
EXISTING [Date].[Calendar].[Month].Members,
[Measures].[Reseller Sales Amount]
)
SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Order Count]),
([Measures].[Monthly Avg Reseller Sales Amount])
} ON COLUMNS,
{
[Date].[Calendar Year].[CY 2001]:
[Date].[Calendar Year].[CY 2004]
} ON ROWS
FROM [Step-by-Step]
;

邀月工作室

下面我们再加上每年的每个订单的销售均值,这也是动态计算的:

例7-10

WITH
MEMBER [Measures].[Average Reseller Sales Amount] AS
([Measures].[Reseller Sales Amount]) / ([Measures].[Reseller Order Count])
,FORMAT_STRING="Currency"
MEMBER [Measures].[Monthly Avg Reseller Sales Amount] AS
Avg(
EXISTING [Date].[Calendar].[Month].Members,
[Measures].[Reseller Sales Amount]
)
SELECT
{
([Measures].[Reseller Sales Amount]),
([Measures].[Reseller Order Count]),
([Measures].[Monthly Avg Reseller Sales Amount]),
([Average Reseller Sales Amount])
} ON COLUMNS,
{
[Date].[Calendar Year].[CY 2001]:
[Date].[Calendar Year].[CY 2004]
} ON ROWS
FROM [Step-by-Step]
;

4、计算标准偏差

MDX使用函数Stdev(http://msdn.microsoft.com/zh-cn/library/ms146068.aspx),来计算标准差,它使用无偏差总体公式,而

对应地,StdevP 函数(http://msdn.microsoft.com/zh-cn/library/ms146019.aspx)使用有偏差总体公式。

看一个复杂点的例子:

例7-11

WITH
MEMBER [Measures].[Average Reseller Sales Amount] AS
([Measures].[Reseller Sales Amount])/ ([Measures].[Reseller Transaction Count])
,FORMAT_STRING="Currency"
MEMBER [Measures].[Variance Reseller Sales Amount] AS
(
([Measures].[Squared Reseller Sales Amount]) /
(([Measures].[Reseller Transaction Count])-1)
) -
(([Measures].[Average Reseller Sales Amount])^2)
,FORMAT_STRING="Currency"
MEMBER [Measures].[StDev Reseller Sales Amount] AS
([Measures].[Variance Reseller Sales Amount])^(0.5)
,FORMAT_STRING="Currency"
SELECT
{
([Measures].[Average Reseller Sales Amount]),
([Measures].[Variance Reseller Sales Amount]),
([Measures].[StDev Reseller Sales Amount])
} ON COLUMNS,
{
[Date].[Calendar Year].[CY 2001]:
[Date].[Calendar Year].[CY 2004]
} ON ROWS
FROM [Step-by-Step]
;

注意:本例中Squared Reseller Sales Amount度量调用一个命名计算

邀月工作室

执行结果:

邀月工作室

小结:本文是聚合函数的进阶,介绍了Aggregation与Sum函数的细微区别,用AVG求静态均值和用表达式求动态均值,还有一个计算标准偏差的函数Stdev。

下文将继续学习Min和Max函数及其他聚合相关功能。

参考资源:

1、MDX官方教程(http://msdn.microsoft.com/zh-cn/library/ms145506.aspx)


邀月注:本文版权由邀月和优快云共同所有,转载请注明出处。
助人等于自助! 
3w@live.cn  

从 VL02N 拣配到 ABAP 自动化,读懂 SD_DELIVERY_UPDATE_PICKING 的位置和风险 文章摘要:SAP SD模块中,SD_DELIVERY_UPDATE_PICKING函数模块用于处理出库交货单的拣配确认,更新交货项目的拣配数量。该函数适用于未启用WM/EWM的传统SD流程,能确保拣配状态与标准交货处理逻辑同步,比直接修改数据库更安全。但在S/4HANA Cloud等新环境中,应优先使用API_OUTBOUND_DELIVERY_SRV等公开发布接口。使用该函数时需注意参数完整性和按交货单整体处理的原则,避免逐项提交导致的数据不一致问题。(149字) 阅读详情

相关推荐

SAP ERP 物料主数据同步外围系统

w_input-beskz = i_marc_new-beskz."采购类型 " BESKZ--- ADD BY HX_FHJ 20210106。w_input-beskz = lw_marc-beskz."采购类型 " BESKZ--- ADD BY HX_FHJ 20210106。w_input-sobsl = i_marc_new-sobsl."特殊采购类型-虚拟物料标识。

ChampaignWolf的专栏 1744

MDX 求一段时间数据的和

MDX,多维表达式(multi-dimensional expressions)的英文缩写词,是一种编程语言语法,支持多维对象与数据的定义和操作。MDX 在很多方面与结构化查询语言 (SQL) 语法相似,但它不是 SQL 语言的扩展;事实上,MDX 所提供的一些功能也可由 SQL 提供,但是不如MDX有效或直观。            如同 SQL 查询一样,每个 MDX 查询都要求有数据请求(

码农一个 2629

博途 V16(TIA portal V16)安装教程

本文提供了西门子TIA Portal V16软件的完整安装指南。内容包括百度网盘下载链接(提取码kv69)、详细安装步骤(关闭安全保护、典型安装设置)、授权破解方法,以及PLCSIM仿真功能的使用说明。重点演示了S7-1200 PLC程序的仿真过程,解析了仿真界面各元素功能,包括状态指示灯(RUN/STOP/ERROR)、操作按钮(RUN/STOP/MRES)和网络接口状态等。通过图文并茂的方式,完整呈现了从软件安装到PLC程序仿真的全流程操作。

lingchen1906的博客 6647

MDX常见计算方法(百分比/分配/平均值/基于时间的计算)

本文介绍了一些经常编写的MDX语句的写法。以下MDX语句可以在SSAS的示例库:Adventure Works中运行。<br /><br />例子模型<br />以下的MDX中用到的Hierarchy如下:<br /><br />百分比<br />1)某个子项占总体的百分比。比如:每种Product的销售额占所有Product销售额的百分比。WITH MEMBER [Measures].[Sale Amount Ratio] AS <br />'[Measures].[Internet Sales Amou

goustzhu地盘 4303

yolov5 部署jetson nano(通用) 保姆级教学

Jetson nano从配置环境到yolov5成功推理检测全过程 文章目录Jetson nano从配置环境到yolov5成功推理检测全过程一、烧录镜像二、配置环境并成功推理1.更新系统和包2、配置环境2.1 配置CUDA2.2 修改Nano板的显存1.打开终端输入:2.修改nvzramconfig.sh文件:3.重启:4.终端输入:3、安装archiconda(也就是jetson nano板上的anaconda)1.下载地址:2.安装:3.测试conda:4.创建运行yolov5的虚拟环境:5.在conda

weixin_44312422的博客 3万+

IFIX往Mysql数据库同步数据方法

通过IFix数据库向Mysql数据库同步数据

仙人掌 1594

MDX Aggregate函数

MDX Aggregate函数的使用

Mr 斌 的专栏 1577

新手工程师必看:搞定EMI传导干扰,从理解差模和共模开始(附实战案例)

本文深入解析EMI传导干扰中的差模与共模问题,为新手工程师提供从诊断到治理的完整方法论。通过实战案例展示如何通过频谱分析、近场探头扫描等技术精准定位干扰源,并分享PCB布局、滤波器设计等系统级解决方案,帮助工程师高效解决传导干扰问题,提升EMC设计能力。

weixin_26757925的博客 469

SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引

SQL Server 2008中SQL应用系列及BI学习笔记系列,欢迎与邀月交流。3w@live.cn◆0、SQL应用系列1、SQL Server 2008中SQL增强之一:Values新用途2、SQL Server 2008中SQL增强之二:Top新用途3、SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)4、SQL Serve

邀月周记 2万+

基于DSP28335的Matlab/Simulink代码生成实验七:A/D采样

实验七:讲解如何使用DSP的ADC模块,通过代码生成技术控制DSP进行电流采样,是后续实现电机闭环控制的重要环节。通过简单的实验来熟悉代码生成的过程。最终实现复杂算法代码自动生成,进行高性能电机控制!

m0_73869369的博客 4723

TM1621/HT1621 段码LCD驱动器

TM1621 LCD 驱动器

qq_45325304的博客 1万+

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记八:执行聚合(下)

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引导读:本文介绍执行聚合(Aggregation)的进阶内容,包括:■1、使用Max和Min函数■2、在集中对元组计数■3、DistinctCount函数■4、使用Generate浏览集合本文所用数据库和所有源码,请到微软官网下载 1、求最大最小值与SQL类似,MDX也提供了名称相同的两个函数:Min(http://msdn.m

邀月周记 2486

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 902

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十一:计算成员和动态命名集

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引 导读:前面几篇介绍MDX的基本函数,从本文起,开始介绍一些简单的MDX应用。本文是Cube的增强篇,包括: ■1、构建Cube范围的简单计算成员(Calculated Members) ■2、构建Cube范围的复杂计算成员(Calculated Members) ■3、动态命名集(Dynamic Named...

dfdfadsf3443的博客 224

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Microsoft SQL Server 2008 Analysis Services Step by Step

<br />本文末尾提供两个项目源码:AdventureWorks_BI_Begin3和AdventureWorks_BI_End3,顾名思义,开始和完成。另外,包括数据库文件SSAS2008SBS_Data,请读者自行修改数据源ds的连接串。<br />本文将包括以下内容:<br />■1、使用:累加、伪累加、无累加、半累加的聚合函数创建度量<br />■2、使用元组(tuples)和MDX函数识别和导航cube中的单元格<br />■3、使用MDX表达式创建计算成员<br />■4、使用MDX表达式应用

jiankangwangQQ的专栏 439

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记四:了解表达式(Expression)

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引 导读:本文介绍表达式(Expression)的基础内容,已经了解的读者可以直接略过。 本文将包括以下内容: ■1、使用tuples, members, sets和常量组建表达式 ■2、使用表达式解释上下文概念(expression context) ■3、调用context生成动态表达式 本文所用...

dfdfadsf3443的博客 180

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记二:Dimensions

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引 导读:在上文本创建SQL Server Analysis Service项目的基础上,继续介绍创建标准维度(Dimensions)和时间维度、父子维度的基本过程。 本文末尾提供两个项目源码:AdventureWorks_BI_Begin和AdventureWorks_BI_End,顾名思义,开始和完成。另外...

dfdfadsf3443的博客 193

《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记四:创建高级度量和计算(上)

导读:本文继续介绍创建高级度量和计算的基本技巧。由于有朋友提出前面三篇内容太长,故本文[创建高级度量和计算],分解为七个小节,方便大家阅读,也便于自己查找复习。

邀月周记 6355

《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记六:创建高级度量和计算(下)...

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引 导读:本文继续介绍创建高级度量和计算的基本技巧:计算脚本和创建KPIs 本文末尾提供两个项目源码:AdventureWorks_BI_Begin3和AdventureWorks_BI_End3,顾名思义,开始和完成。另外,包括数据库文件SSAS2008SBS_Data,请读者自行修改数据源ds的连接串。 本文...

dfdfadsf3443的博客 169

《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记六:创建高级度量和计算(下)

导读:本文继续介绍创建高级度量和计算 的基本技巧:计算脚本和创建KPIs 本文末尾提供两个项目源码:AdventureWorks_BI_Begin3和AdventureWorks_BI_End3,顾名思义,开始和完成。另外,包括数据库文件SSAS2008SBS_Data,请读者

邀月周记 4337

《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记十四:设计聚合(Aggregation)(上)

SQL Server 2008中SQL应用系列及BI笔记系列--目录索引导读:本文介绍Analysis Services中与聚合(Aggregations)相关的设计。本文将包括以下内容:■1、使用Aggregation设计向导设计Aggregation■2、通过创建属性关联和用户自定义层次来改善Aggregation■3、使用AggregationUsag

邀月周记 4114
上一篇: 《Microsoft SQL Server 2008 MDX Step by Step》学习笔记六:生成复杂的集合(Sets)(下)
下一篇: 《Microsoft SQL Server 2008 MDX Step by Step》学习笔记八:执行聚合(下)
downmoon
博客等级 码龄24年 1676粉丝 494原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值