计算多个列中的不同元素

时间:2020-07-06 08:28:40

标签: count distinct

我有一个场景,其中有多个内容相似的列。我想计算所有列中有多少个不同的值。与以下链接的情况略有不同,在下面的链接中,两列的内容被视为单个属性/元素。

Counting DISTINCT over multiple columns

StudentClubs

我的桌子如上所述。我需要遍历所有俱乐部栏目,并计算有多少不同的俱乐部。

我管理的以下代码仅计算不同的行。在每一列中没有单独的不同元素。

select count(*) from( select distinct Club1 Club2 from StudentClubs) as ClubCount

以上返回6

我需要它来输出12,因为总共有12个俱乐部。

谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,我找到了以下临时解决方案。首先堆叠列,然后使用不同的计数。 似乎至少在此示例中有效。

select count(distinct A.Club1)
from (

select Club1 from StudentClubs as A
union all
select Club2 from StudentClubs as A
union all
select Club3 from StudentClubs as A
union all 
select Club4 from StudentClubs as A
) as A

以上输出12。 如果您有更好的方法来处理此问题,请分享。 谢谢