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

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

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

方法一

  • 连接两个表格,筛选出只回答了教育和职场类的用户
  • group by issue_type,author_id使得就算一个用户回答了多个教育或者职场问题,也只算作一个,因为这里是统计用户个数,接着order by author_id,将相同用户放在一起
  • 利用窗口函数lead形成新的一列leadd,partition by author_id
  • 上面三步形成新的表格t1,再统计leadd个数就好啦
select
count(leadd) as num
from
(select 
	issue_type,
    author_id,
    lead(issue_type,1) over (partition by author_id) as leadd
from issue_tb it
join answer_tb atb
on it.issue_id=atb.issue_id
where issue_type='Education' or issue_type='Career'
group by issue_type,author_id
order by author_id) t1

方法二

  • 利用子查询
select 
	count(distinct author_id) as num
from issue_tb it
join answer_tb atb
on it.issue_id=atb.issue_id
where issue_type='Education' 
      and author_id in( select author_id
						from issue_tb it
						join answer_tb atb
						on it.issue_id=atb.issue_id
                        where issue_type='Career' )


全部评论

相关推荐

07-23 15:05
门头沟学院 Java
熊大不大:不好意思KPI数据刚刚刷新,刚刚达标
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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