【发布时间】:2019-04-26 08:58:52
【问题描述】:
我在数据库中有一个表,其中有对应的主键值。 我想计算两列的不同值。
我已经知道一种使用 union all 然后在结果表上应用 groupby 的方法。
Select Id,Brand1
into #Temp
from data
union all
Select Id,Brand2
from data
Select ID,Count(Distinct Brand1)
from #Temp
group by ID
我们可以在大查询中做同样的事情,也只使用临时表。
样本表
ID Brand1 Brand2
1 A B
1 B C
2 D A
2 A D
结果表
ID Distinct_Count_Brand
1 3
2 2
正如您在此列中看到的 Distinct_count_Brand 它正在从 Brand1 和 Brand2 两列中计算 Brand 的唯一计数。
我已经知道一种方法(基本上是非透视),但想知道是否有其他方法可以计算两列中的唯一值。
【问题讨论】:
-
您的问题是关于 sql server 还是 bigquery?
-
您可以提供任何解决方案。
-
好的,我不知道 bigquery,但我看到你已经有了一个应该可以工作的答案。
-
是的,我已经有了答案,但我想知道是否有其他方法无需取消数据透视。
标签: sql sql-server tsql google-bigquery