我最近出席了一次采访,并被要求为这个问题编写SQL查询 -
有桌子访问(人,剧院)表示人p访问剧院t。现在一个人p1被认为是更多的电影情人,如果他访问另一个人p2访问的每个剧院。我本来应该写一个SQL查询来找到最喜欢电影的人(一个比其他人更喜欢电影情人的人)。
我真的不知道如何回答它。我无意中使用了子查询和聚合运算符,但无法回答它。
有人能告诉我查询是什么吗?
注意:我被告知我不能在这里使用递归
答案 0 :(得分:1)
描述非常含糊,所以如果我们将问题陈述为“是否有任何人访问过所有其他人的所有影院”,我们可以这样说:
select v.person
from visit v
where v.theatre = all (
select vt.theatre
from visit vt)
答案 1 :(得分:0)
描述含糊不清,但类似
select person, count(*) as cnt
from visit
group by person
order by cnt desc
答案 2 :(得分:0)
select person,count(theatre) from Visit Group By person having max(count(theatre)))