繁体   English   中英

如何计算某个维度使用了多少次 TABLEAU/SQL

[英]How do I count how many times a certain dimension is used TABLEAU/SQL

我试图计算我的条形码出现在多个地方的次数。 我试图将条形码分为两类 1) 仅出现在一个业务单元中的条形码 2) 出现在多个业务单元中的条形码

在此处输入图像描述

我不在乎它们在多个业务部门出现了多少次,只要它确实出现在多个业务部门中就行了

求救

计算有多少字段不是 null。

SELECT *, Abs(NOT IsNull(CH101) + NOT IsNull(CH311) + etc) AS CntBU FROM table;

否则,规范化数据结构以便可以使用聚合查询。 UNION 可以将数据重新排列为标准化结构,然后在聚合查询中使用 UNION 查询。

SELECT BarCode, RecordType, ProductCo, CH101 AS Data, "CH101" AS BU FROM table
UNION SELECT BarCode, RecordType, ProductCo, CH311, "CH311" FROM table
etc

UNION 中的 SELECT 行限制为 50 条。

一种解决方案是基于条形码(或薄荷,如果首选)字段定义一个集合。 右键单击数据窗格侧栏中的条形码(或薄荷)并创建集。 使用条件定义集合中的成员资格

countd([Business Unit]) > 1

如果条形码与多个业务单位一起出现,则它们属于该集合。 您可以在任何架子或计算上使用该集合

为了更简单的方法来理解 COUNTD() 的工作原理。 在新工作表中,将一个离散字段放在“行”架子上,例如条形码,然后将“业务单位”放在“列”上。 然后右键单击列架上的业务单元,并使用 COUNTD function 将其从维度转换为度量。

然后,您应该会看到每个条码的标记,显示条码与数据中出现的不同业务单位的数量。 对于 COUNTD([Business Unit]) = 1 的条形码,它们仅出现在具有一个特定 [Business Unit] 的数据中

该集合所做的是将与多个业务单位一起出现的条码与仅与一个业务单位一起出现的条码区分开来。 将集合视为基于条码的 boolean function 的一种方式。

您可以在 Tableau 中将集合用于各种事物,在帮助和培训中进行了很好的描述,但它们对于您的问题并不是必需的(只是方便)解决您的问题的 function 是 COUNTD()。 值得花时间确保你理解它。 在 SQL 中,相当于“COUNT DISTINCT”

最后一点,COUNTD() 有用且重要,但它比其他聚合函数(如 COUNT() 或 SUM())计算量更大。 因此,如果您有非常大的数据集并看到性能问题,请查看对 COUNTD 的调用是否可能是罪魁祸首。 然后,您可以研究以不同方式塑造数据的方法,以避免对 COUNTD() 的需要。 尽管如此,对于大多数中小型数据集, COUNTD() 的便利性超过了任何性能成本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM