这句有没有更好的写法

jronald 2008-02-25 06:28:22
SELECT COUNT(DISTINCT a.name)+COUNT(DISTINCT b.name) FROM t1 a,t2 b





作用是求t1中不同的name的数量+t2中不同的name的数量
(即,若同一个name在两表中都出现,那么算2次)
...全文
105 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
junshanhudazhaxi 2008-02-26
上面的评论错了!
union 与union all都是合并结果集,不过它们之间是有区别的,union会自动过滤重复的记录值,union all则不会过滤
回复
junshanhudazhaxi 2008-02-26
怎么乱码了?!
回复
junshanhudazhaxi 2008-02-26
¥�ϵ��Ǵ���Ĵ
回复
中国风 2008-02-25

select count(1)
from (
select Name from T1
union --去掉all
select Name from T2
)TT
回复
中国风 2008-02-25

----------
一楼才是楼主要的答案..
或另一种答案计算两个表的合起来的不同记录
select count(1)
from (
select Name from T1
union all
select Name from T2
)TT
回复
zefuzhang2008 2008-02-25
同意1楼,另外,楼主的答案是错误的
回复
artmouse 2008-02-25
SELECT COUNT(DISTINCT a.name)+COUNT(DISTINCT b.name) FROM t1 a,t2 b
应该用了Gross join,性能未必好
回复
jronald 2008-02-25
你的应该更快
回复
jronald 2008-02-25
你的应该更怜惜
我的可以运行的
回复
dobear_0922 2008-02-25
另外,你的写法是错的,,,
回复
dobear_0922 2008-02-25
select sum(c) from
(
select c=COUNT(DISTINCT name) from t1
union all
select c=COUNT(DISTINCT name) from t2
) T
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-02-25 06:28
社区公告
暂无公告