题解 | #某乎问答回答过教育类问题的用户里有多少用户回答过职场类问题#

某乎问答回答过教育类问题的用户里有多少用户回答过职场类问题

http://www.nowcoder.com/practice/b02cf9ee7b9f4cdda308f8155ff3415d

主要信息

  • answer_tb如下(其中answer_date表示创作日期、author_id指创作者编号、issue_id指回答问题编号、char_len表示回答字数);所有用户信息(author_date表示回答日期、author_id表示创作者id,answer_cnt表示回答问题个数),以上例子的输出结果如下
  • 统计回答过教育类问题的用户里有多少用户回答过职场类问题

问题拆解

总体思路

  • 连接问题信息表和回答信息表,取出回答教育类问题的用户的信息
  • 分别取出两份相同的数据,找出同时含有职场类问题和教育类问题的用户的id去重统计

具体实现

  • 通过issue_id连接answer_tb和issue_tb,取出issue_id和author_id,复制一份相同的数据
  • 两份数据通过author_id连接取出其中即有教育类回答又有职场类回答的用户最后count distinct去重统计

其实t2中的on条件也可以放在最后用where实现同样的效果

SELECT COUNT(DISTINCT t2.author_id) AS num
FROM (
	SELECT
  		author_id, issue_type
	FROM answer_tb a
		LEFT JOIN issue_tb i USING (issue_id)
) t1
	LEFT JOIN (
		SELECT author_id, issue_type
		FROM answer_tb a
			LEFT JOIN issue_tb i USING (issue_id)
	) t2
	ON t1.author_id = t2.author_id
		AND t1.issue_type = 'Education'
		AND t2.issue_type = 'Career';
全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
嵌入式的小白:简历关键的就是项目经历,你这密密麻麻的,我一点开就不想看了,每一条都不换行,而且每一个里面写那么多,需要精简一下,这样别人看一眼就能知道你做了啥,用了啥技术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务