{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

SQL多表查询统计怎么弄?

lauren_liulinglauren_liuling 回答0 收藏1
问题描述:表A和表B结构一模一样,我想统计其中某人名(两个表都有姓名这个字段)出现的总数,求怎么写SQL语句?
收藏问题

2条回答

JinB

JinB

回答于2022-06-28 13:48

既然两个表的结构一模一样,如果想统计人名出现的总数,可以将两个表先用union all合并到一起,然后再对其进行统计。

例如,有下面两个表:成绩表A、成绩表B,这两个表的结构是完全一样的,分别都有20条记录,但两个表有部分记录是重复的:

如果将两个表合并到一起,可以使用union all。注意,这里必须加上all,否则,那些重复的记录就会被排除掉了,从而导致出现的总数不准确。例如,下面的语句没有加all,输出的姓名记录数只有25个,有另外15个重复的被排除掉了:

所以,一定要加上all。这样得到两个表的合集后,再用括号将其包起来,把它作为一个表来处理,再次统计即可。sql语句如下:

select 姓名,count(*) as 出现次数 from (select 姓名 from 成绩表A union all select 姓名 from 成绩表B) group by 姓名

统计结果如下图:

我是人民邮电出版社签约作者,著有多本与B/S、C/S开发方面的专业书籍,欢迎关注并一起交流提高,谢谢!

评论0 赞同0
  •  加载中...
dockerclub

dockerclub

回答于2022-06-28 13:48

SQL多表查询,一般都是用连接进行表之间的连接,那样会把所有表统一行程一张大表或者视图进行查询,那样方便你的查询;

查询之后,根据你的需求进行order by或者group by统计你想要的数据;

如有不明白的地方,可以关注我并且私聊我!

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<