3

我想计算两组不同元素的数量。准确地说,这是集合 1 和集合 2 的并集。

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

select COUNT(set1 union set2) from table1`

EDIT set1 和 set2 是 table1 的列

这是一个简短的例子:

在一个班级中设置 1 名学生:

Bubba, Jody, Rex, Sandy, Jules

在一个班级中设置 2 名学生:

Jody, Rob, Horace, Thor, Rex

我想要两个班级的学生人数不同:

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

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

4

2 回答 2

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

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

于 2013-01-08T16:27:17.930 回答
0

假设列中为 1 表示在集合中,NULL 表示不在集合中

select count(*)
from Table1
where set1 is not null or set2 is not null

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

于 2013-01-08T16:55:50.923 回答