如何使用 SQL 或 Tableau 计算组之间唯一的公共值?

问题描述 投票:0回答:1

我无法找到一种方法来计算使用 Power Query、SQL 或 Tableau 的组之间的唯一公共值。

INPUT:我有这样的数据集:

Group   Value
A   1
A   2
A   3
A   4
A   5
B   3
B   5
B   6
B   7
C   8
C   3
C   6
C   9

输出:我想要一个对称矩阵,给出不同组组合之间唯一值的计数

    A   B   C   Total Unique
A   5   2   1   5
B   2   4   1   4
C   1   1   4   4

我在创建辅助 COUNTIF 列后尝试使用数据透视表,但无法解决我的问题。另外,我的数据集有超过 200 万行。

python unique tableau-api powerquery
1个回答
0
投票

当他们共享3和6时C / B = 1对我来说没有意义,这似乎表明应该是= 2

就是说,下面是一些 powerquery,它似乎可以执行我认为您想要的操作。然而,在其自身之上合并 200 万行可能会使 powerquery 窒息,但请尝试一下。我会推荐另一个工具

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Removed Duplicates" = Table.Distinct(Source),
Distinct = Table.Group(#"Removed Duplicates", {"Group"}, {{"Distinct", each Table.RowCount(_), Int64.Type}}),
#"Merged Queries" = Table.NestedJoin(#"Removed Duplicates", {"Value"}, #"Removed Duplicates", {"Value"}, "Changed Type", JoinKind.LeftOuter),
#"Expanded Changed Type" = Table.ExpandTableColumn(#"Merged Queries", "Changed Type", {"Group"}, {"Group2"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Changed Type",{"Value"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns", "Custom", each 1),
#"Pivoted Column" = Table.Pivot(#"Added Custom", List.Distinct(#"Added Custom"[Group2]), "Group2", "Custom", List.Sum),
#"Merged Queries1" = Table.NestedJoin(#"Pivoted Column", {"Group"}, Distinct, {"Group"}, "aaa", JoinKind.LeftOuter),
Expanded = Table.ExpandTableColumn(#"Merged Queries1", "aaa", {"Distinct"}, {"Distinct"})
in  Expanded

© www.soinside.com 2019 - 2024. All rights reserved.