SQL计算重叠集的不同元素

时间:2013-01-08 16:20:36

标签: sql count distinct set overlapping

我想计算两组中不同元素的数量。确切地说,这是第1组和第2组的结合。

如何将以下伪SQL格式化为正常运行的SQL

select COUNT(set1 union set2) from table1`

编辑 set1和set2是table1的列

这是一个简短的例子:

在课堂上设置1名学生:

Bubba, Jody, Rex, Sandy, Jules

在课堂上设置2名学生:

Jody, Rob, Horace, Thor, Rex

我希望两个班级都有不同数量的学生:

Bubba, Jody, Rex, Sandy Jules, Rob, Horace, Thor

所以,工会会做,我可以算数。

2 个答案:

答案 0 :(得分:2)

Select Count(column_alias) From
( Select set1 As column_alias From Table1 
Union 
Select set2 From Table1 )

联盟将使这些元素独一无二。这仅在列数据类型兼容时才有效。如果需要,可以修改子查询以包含Where条件。

答案 1 :(得分:0)

假设列中的1表示集合中的值,并且在集合

中不使用NULL
select count(*)
from Table1
where set1 is not null or set2 is not null

如果集合中的包含表示不同,则重写where子句。