这句有没有更好的写法

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次)
...全文
134 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧