sql - 如何计算某个维度使用了多少次 TABLEAU/SQL
问题描述
我试图计算我的条形码出现在多个地方的次数。我试图将条形码分为两类 1) 仅出现在一个业务单元中的条形码 2) 出现在多个业务单元中的条形码
我不在乎它们在多个业务部门出现了多少次,只要它确实出现在多个业务部门中就行了
求救
解决方案
一种解决方案是基于条形码(或薄荷,如果首选)字段定义一个集合。右键单击数据窗格侧栏中的条形码(或薄荷)并创建集。使用条件定义集合中的成员资格
countd([Business Unit]) > 1
如果条形码与多个业务单位一起出现,则它们属于该集合。您可以在任何架子或计算上使用该集合
为了更简单的方法来理解 COUNTD() 的工作原理。在新的工作表中,将一个离散字段放在“行”架子上,比如条形码,然后将“业务单位”放在“列”上。然后右键单击列架上的业务单元,并使用 COUNTD 函数将其从维度转换为度量。
然后,您应该会看到每个条码的标记,显示条码与数据中出现的不同业务单位的数量。对于 COUNTD([Business Unit]) = 1 的条形码,它们仅出现在具有一个特定 [Business Unit] 的数据中
该集合所做的是将与多个业务单位一起出现的条码与仅与一个业务单位一起出现的条码区分开来。将集合视为基于条形码的布尔函数的一种方法。
您可以在 Tableau 中对各种事物使用集合,在帮助和培训中进行了很好的描述,但它们对于您的问题并不是必需的(只是方便)解决您的问题的函数是 COUNTD()。值得花时间确保你理解它。在 SQL 中,相当于“COUNT DISTINCT”
最后一点,COUNTD() 有用且重要,但它比其他聚合函数(如 COUNT() 或 SUM())计算量更大。因此,如果您有非常大的数据集并看到性能问题,请查看对 COUNTD 的调用是否可能是罪魁祸首。然后,您可以研究以不同方式塑造数据的方法,以避免对 COUNTD() 的需要。尽管如此,对于大多数中小型数据集, COUNTD() 的便利性超过了任何性能成本
推荐阅读
- c# - 如何使用数据库中的数据在 LiveCharts 中创建折线图?
- css - 在 CSS calc 中引用 top 或 parent top
- php - 如果我不涉及接口或抽象类,为什么静态方法签名不兼容?
- node.js - 如何避免 mongodb 文档中的对象数组重复
- excel - 将字符串传递给用户窗体
- python - Polars python相当于R中的一瞥和总结
- python - 按数字降序对列表进行排序,如果数字相同,则在 Python 中按字母升序排序
- python - 正则表达式在以字母 S 和后续数字或字符 < 结尾的单词之间添加空格
- python - 相邻矩阵的度中心性和聚类系数
- flutter - 使用 Streambuilder 使用流的优势