sql-return平均年龄取决于访问量?

6qqygrtg  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(263)

我正想弄明白这项任务,但经过一次次的努力,我还是没能解决它。有更多sql经验的人能帮我吗?
我有三张table:

[


这项任务是计算每个去过萨尔茨堡餐馆的人的平均年龄。如果一个人去过萨尔茨堡的一家餐馆两次,就应该把它加到平均年龄上(本例中是艾米莉)。
由于短笛和斯特拉位于萨尔茨堡,总共有4次参观。
但是如何在sql中实现这一点呢?
我怎么计算访问次数?
感谢您的帮助。提前谢谢大家!
mysql版本:8.0.20,使用mysql workbench。
编辑4:
虽然@nick的答案也很棒,这就是为什么我接受他的答案是正确的。非常感谢大家和@nick!万一有人遇到同样的问题,我的最终解决办法是:

SELECT (AVG(age)) FROM PERSON INNER JOIN ISST ON PERSON.person_name = ISST.person_name INNER JOIN PIZZERIA ON ISST.pizzeria_name = PIZZERIA.pizzeria_name && PIZZERIA.stadt="Salzburg";
xlpyo6sf

xlpyo6sf1#

因为你想计算所有游客的平均年龄(不管一个人是否两次去同一个城市的比萨店),你可以 JOIN 你的访问表到比萨店和人表,并平均结果:

SELECT AVG(p.alter)
FROM ISST i
JOIN PIZZERIA z ON z.pizzeria_name = i.pizzeria_name
JOIN PERSON p ON p.person_name = i.person_name
WHERE z.stadt = 'Salzburg'

输出:

25.75

在dbfiddle上演示

相关问题