首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tableau LOD:从SUM+IF条件计算到SUMIF

比如: 2022年,各个类别、子类别 的 YTD销售额(总和)及其同比、MTD销售额及其同比、利润率 在新书第六章筛选章节,我补充了“独立筛选和计算条件筛选”这两个类型,前者对问题中的所有指标起作用,后者仅对与之结合的聚合起作用...由于SUM和IF完全独立,从计算的角度看,SUM对不符合计算条件的null或者0值也要执行相加计算——这一点非常重要,后面SUMIF的优化方案就是从这里而来。...2022年,各个类别、子类别 的 YTD销售额(总和)、MTD销售额、利润率 可以如下实现(MTD简化为2022年12月): SELECT SUM( a....所知尚浅,应该还有其他类似、甚至性能更优的方案,它们都把YTD与MTD的条件置于WHERE中,而非SELECT的SUM+IF的。...不管是何种语法,前端的表达式都将转化为数据库层面的SQL查询,因此从SQL的角度看二者的共同点,二者都是嵌套查询(nested query)和数据合并(join)的组合形式。

11700

2.33 PowerBI数据建模-计算组用于衍生度量值、双层表头、切片器等

使用计算组可以减少书写度量值的个数,用于衍生度量值、双层表头、切片器等。...因此,不管用不用到计算组,都要养成书写基础度量值的习惯。举例新建一个如下计算组,包括MTD、QTD、YTD等时间智能相关的计算项。...选中计算项,在属性窗格内通过拖动字段调整计算项的顺序。这个顺序的背后是一个自动生成的序号列,用于给计算组列按列排序,以便计算项在坐标轴或切片器中按需排序。...2 把计算组放入切片器,可以在页面空间不足时,分别展示MTD/QTD/YTD等日期区间下的度量值结果。...3 把计算组放入矩阵的列,可实现双层表头,直观地展示MTD/QTD/YTD等日期区间下的度量值结果。为了显示友好,列字段中的时间智能名称可以修改为“.”。

9810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    内行才能看懂的 PowerBI DAX 引擎重大更新来了

    当我们需要这些基础度量值与一些条件关联时,就会产生新的度量值,如和时间有关的组合,包括: MTD,QTD,YTD,PY,MTD PY,QTD PY,YTD PY,PY FY,MTD YOY%,QTD YOY...这一个只含有一列的表,列中的每个值定义了可复用的计算逻辑,称这些值叫:calculation items。 这里不做中文翻译,因为该特性尚在预览阶段,以未来微软提供的中文翻译名字为准。...从 CALCULATE 的技术细节来讲,应该是在 CALCULATE 计算的上下文堆栈中,压入新的筛选器,再计算 CALCULATE 的第一个参数。...相关信息 该DAX能力目前仅仅在预览阶段的 SQL Server 2019 CTP 2.3 中存在,而且尚无任何微软官方编辑器可以编辑操作该特性,也就是说,你无法在 DAX Studio,Power BI...这是一个由社区开发的第三方工具。 给出尝试思路如下: 下载最新版 SQL Server 2019 CTP 2.3 并建立一个 SSAS Tabular 项目。

    4.1K20

    SQL查询和删除重复值的操作方法

    如题,SQL查询和删除重复值,例子是在Oracle环境下,类似写法网上很多。...1、利用distinct关键字去重 2、利用group by分组去重(这里没有实验出来就不写了) 3、利用rowid查询去重(个人推荐这个,rowid查询速度是最快的) 先一张测试表(USERS),里面有很多重复数据...*/ select distinct username,password from users; image.png 方法二:用rowid方法进行全字段重复查询,也可以按字段查询重复值 注:先查询出最后一条的全字段重复值...,在用rowid找出其他剩余的重复值 select * from users u01 where rowid!...username and u01.password=u02.password and u01.age=u02.age and u01.sex=u02.sex ) image.png 删除重复数据(这里删除的是全字段重复的数据

    2.2K00

    时间维度计算与分析专题-01-理解结构

    例如:对于任何一个日期点,都可以对它计算 MTD 或 YTD,其逻辑本质是将一个日期点扩展成为一段更长的日期区间。...缩放日期区间 需要缩放日期区间的业务场景包括:MTD,QTD,YTD一般是放大;而月初/末,年初/末是缩小等。...它返回的是值还是表? A 值 B 表 【问题五】某个闰年的2月29日的去年同期(DATEADD(…,-1,YEAR))是哪一天?...A 1月29日 B 1月28日 C 1月31日 【问题八】2020 年 5 月已过 13 日,MTD 的去年同期是哪段日期?...(将在直播中一起分析) 实践 WTD 计算 在默认的日期智能的计算中,并不包括 WTD 的计算,虽然有很多种实现方法,这里给出最简单的一种,如下: KPI.WTD = CALCULATE( [KPI

    79810

    PowerBI 时间智能终极奥义,用 WTD 练手

    例如:对于任何一个日期点,都可以对它计算 MTD 或 YTD,其逻辑本质是将一个日期点扩展成为一段更长的日期区间。...缩放日期区间 需要缩放日期区间的业务场景包括:MTD,QTD,YTD一般是放大;而月初/末,年初/末是缩小等。...它返回的是值还是表? A 值 B 表 【问题五】某个闰年的2月29日的去年同期(DATEADD(…,-1,YEAR))是哪一天?...A 1月29日 B 1月28日 C 1月31日 【问题八】2020 年 5 月已过 13 日,MTD 的去年同期是哪段日期?...(将在直播中一起分析) 实践 WTD 计算 在默认的日期智能的计算中,并不包括 WTD 的计算,虽然有很多种实现方法,这里给出最简单的一种,如下: KPI.WTD = CALCULATE( [KPI

    1.4K20

    SQL使用(一):如何使用SQL语句去查询第二高的值

    今天刷MYSQL题的时候刷到这样一个题: 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。...,可以使用max和min去查询出来,但对于第N的就不好找了,思考了一会儿了,心里大致有二个思路: 第一个思路,因为是求的第二高,那就把最高的找出来,小于的它的,然后再排列一下取最大的就行了 # 1、求最大的值...如果查询不到数据,应该返回什么值,需不需对这种情况进行封装的考虑,这道题里已经要求了,若是没有查询到就输出null,所以再次修改了我的sql: select ifnull(...知识点总结: LIMIT LIMIT 一般都是放在SQL语句的最后,是对展示的结果做一个限制输出,比如查询了十条记录,但只展示一条,那就可以在SQL语句后面加一个LIMIT 1。...IFNULL() IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

    5.7K10

    【DAX 系列】PowerBI 期初期末的数据结构与过程计算模式

    但还有一种类型就是在管理过程中,保留了过程值,但却需要计算最终的状态。 存货表结构 存货表的结构如下: 这个结构保存在存货过程中的年初盘点,新增,销售三个过程量。...它的特点在于如果要计算某个日期的期初或期末要考虑到 YTD 的整个过程。...我们对三种状态做透视表,可以看出: 一般我们在年初,尤其是1月1日,录入整个年份的初始记录,接着随着时间的发展,某日期的期末的计算逻辑如下: 某日期的期末 = 年初初始化 + YTD新增(补货) - YTD...接着,我们要获得状态的值。...它们包括:日期表,(绝对)日期区间表,(相对)日期区间表,上期同期(年,季,月,周,日),XTD(YTD,QTD,MTD,WTD),上期全部(去年全年,上季度,上月,上周,昨天),过去X天(移动平均,滚动日期

    2.9K11

    2.17 PowerBI数据建模-不到月底,MTD做到去年同期与今年截止日期相同

    当月没到最后一天的时候,PowerBI报告中的去年同期MTD(QTD/YTD类似)显示的是所选月份的整月数字(如下图,3492是去年2月的整月数字)。...以月份为报告周期,MTD的实际数字会和去年同期的整月数字做对比,是一种看报告的方式。还有一种需求是,希望和去年MTD(与今年MTD的截止日期相同)做对比,苹果对苹果。该怎么办呢?...这种情况下,计算机没有收到一个具体到天的时间点,MTD时间智能函数默认取所选月份的最后一天,去年同期自然也就是取整月数字了。...在保持月报形式、不增加到天的日期切片器前提下,可以给度量值套上一个到天的日期时间点的筛选条件。考虑到过往月份和未来月份,不能把时间点锁死在固定的事实表日期的最大值上。...当报告页面切片器选择2024年1月、2月、3月的时候,可以看到,1月的去年同期两个度量值返回的都是2023年1月的整月数字;2月的去年同期Sales_MTD_LY返回的是2023年2月的整月数字,Sales_MTD_LY

    5710

    PowerBI & Excel CEO 终极驾驶舱 - 第二弹 - 综合近期与历史分析

    我们简单解读一下:对于销售额,这里考察经理楚杰在相对于报表刷新日期前一天(设为:基准日)的业绩表现;左边是相对于基准日的MTD的表现;右边是历史不同月份的表现;非常清晰地看到了楚杰对销售额完成的全景。...这可以定义为部分数据驱动驱动的目标管理。 再比如,预定的一个季度的销售指标,当前的MTD需要与上月的MTD做及时的对比,而不是等到这个月结束再对比。 那么,在如上的历史分析图表中就无法应对了。...这还不是最大的问题,最大的问题是这里的相对日期并没有TD(To Date)的概念,例如:WTD指的是本周一至今;MTD指的是本月一日至今。 因此,PowerBI的相对日期区间比较受限。...所谓XTD就是DTD,WTD,MTD,QTD,YTD。含义为:当日,当周1日至当日,当月1日至当日,当季1日至当日,当年1日至当日。...但我们可以给出一个结论:使用CALCULATE可以构建任意复杂的筛选结构。这样,我们就有了正确计算PX的度量值。

    1.7K10

    计算特殊奖金-sql语句之UNION(联合查询)的用法

    用处:将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。 例题:1873....计算特殊奖金 表: Employees +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | employee_id...此表的每一行给出了雇员id ,名字和薪水。 写出一个SQL 查询语句,计算每个雇员的奖金。如果一个雇员的id是奇数并且他的名字不是以’M’开头,那么他的奖金是他工资的100%,否则奖金为0。...返回的结果集请按照employee_id排序。 查询结果格式如下面的例子所示。...雇员id为3的因为他的名字以’M’开头,所以,奖金是0。 其他的雇员得到了百分之百的奖金。

    69610

    BI-SQL丨Date

    Date Date基本上是所有数据处理软件都会涉及到的一个版块,而且也是最贴近业务的一类数据类型。 在PowerBI中,有很多的时间函数以及时间智能函数,而在SQL中,也有类似于时间函数的子句。...相信业务方的小伙伴可能心有感触,日常我们关注的,就是各种时间维度的指标计算。 例如:MTD、QTD、YTD、LMAmt、LQAmt、LYAmt、MOM%、QOQ%、YOY%等等。...究其根本,很多企业发展到一定量级的时候,从管理层的角度更多的是关注一段时间内的各种指标,关注的方向是企业的大盘,很少会有关注单点日期的情况(电商除外)。...SQL中常用的内置日期函数有以下几种: GETDATE、DATEPART、DATEADD、DATEDIFF、CONVERT。 GETDATE 从SQL返回当前的时间和日期。...注:SQL中一定要注意日期格式,如果带时间,可能会导致筛选失败。 DATEPART 用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

    99300

    PostgreSQL从小白到高手教程 - 第45讲:poc-tpcc测试

    介绍内容2:TPC-C测试部署内容3:TPC-C报告TPC背景介绍TPC组织:事务处理性能测试委员会TPC(Transaction process performance Council)是一个专门负责制定计算机事务处理能力测试标准并监督其执行的组织...联机分析处理OLAP(On-Line Analytical Processing) 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。...,因此它的数目约为Order的10倍,会持续增长,不删除,初始值为W*30w 9) history表:历史信息表,没有主键,不需要查询,每次支付的时候生成一条记录,初始值为W*3w条TPC-C业务数据模型...99.93% [OK] Stock-Level: 99.83% [OK] Overall tpmC: 3975.33 Overall tpmTotal: 8896.00数据一致性验证6条验证数据一致性的sql...,通过验证仓库和区域收入是否相等来判断数据是否一致,预期以下6条sql结果都为0第一条: SELECT distinct w_ytd - ytd_sum FROM bmsql_warehouse LEFT

    15510

    PowerBI 将支持度量值爆炸模式 颠覆将再度来袭

    计算逻辑重用 这里涉及一个非常重要的问题就是计算逻辑重用。也就是如何重复利用包括按时间计算的所有逻辑。来支持度量值爆炸,或者说不必爆炸,让度量值维持在原有的水平。...还削弱了能力;为了弥补计算逻辑复用的缺失,在新版本中,将加入 Calculation Group (可翻译为:计算组或组计算)的概念。...如下: 当然,在做这些操作之前,需要安装 SQL Server 2019 CTP 2.4,然后我们使用 Tabular Editor 制作好模型并发布。...正常情况下,我们有三个指标如下: 接着,我们有两套需要复用的计算逻辑: XTD逻辑:包括YTD,QTD,MTD; PreviousPeriod逻辑:包括PY,PQ,PM; XTD逻辑又可以和PreviousPeriod...幸好现在有了组计算的模式,我们可以不用写27个度量值了。

    1.6K10
    领券