sql - 在 2 个联合 sql server 表中获取不同的值

标签 sql union distinct distinct-values

我正在尝试使用联合在 2 个表中获取所有不同的值。

这个想法是在不重复的情况下获取 columnA 列中所有唯一值的计数,以便我可以获得包含唯一 columnA 的所有列的总和。

这是我尝试过的(sql server express 2008)

select 
    count(Distinct ColumnA) 
from 
( 
    select Distinct ColumnA as ColumnA from tableX where x = y
    union
    select Distinct ColumnA as ColumnA from tableY where y=z
)

最佳答案

SELECT COUNT(distinct tmp.ColumnA) FROM ( (SELECT ColumnA FROM TableX WHERE x=y) 
UNION (SELECT ColumnA FROM TableY WHERE y=z) ) as tmp

TableX 和 TableY 上的额外区别不是必需的;它们将在 tmp.ColumnA 子句中被剥离。声明一个临时表应该可以消除可能阻止您的查询执行的歧义。

关于sql - 在 2 个联合 sql server 表中获取不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891016/

相关文章:

mysql - sql AND OR LIKE 运算符显示值

sql - 同一数据库内的排序规则冲突

mysql - 删除所有具有重复项的查询结果(NOT DISTINCT)

mysql - SQL 查询 - 列出分会成员的平均年龄

SQL语法新手学生

mysql - 根据一个表列更新另一表列

mysql - 如何在mysql中显示具有多个音乐流派类别的专辑?

sql - 使用 order by 子句 SQL Server 2014 时如何使用 union all

MySql如何在if语句中联合2个查询

php - Distinct 在 mysql 的选择查询中不起作用