我有一个教程我已经慢慢解决并需要帮助,因为HAVING不是我最强的套装之一。
这是网站:
问题是第9个问题:
显示物理学三个奖项的年份。
Table: nobel(yr, subject, winner)
你能告诉我怎么解决这个问题吗?
答案 0 :(得分:1)
我认为你应该在查询中统计获奖者,如下:
SELECT yr
FROM nobel
WHERE subject = 'Physics'
GROUP BY yr
HAVING count(winner) = 3
请记住使用具有聚合函数(总和,平均值,计数等) 您在哪里,分组和拥有的顺序很重要。
如果您在使用其他教程时遇到问题,请在此处询问。
答案 1 :(得分:0)
这将只为您提供主题为物理的行。然后他们按年份分组,当年的计数等于三。
SELECT yr FROM nobel
WHERE subject = 'Physics'
GROUP BY yr HAVING COUNT(*) = 3
HAVING
关键字相当清楚explained here。它基本上可以看作WHERE
的{{1}}子句。如果这有助于您从概念上理解它。
答案 2 :(得分:0)
在这里 - 首先选择所有主题为物理的记录,然后按年份对结果进行分组(这样可以统计所有这些记录)。最后,您可以使用having子句检查它们的计数。
select yr from nobel where subject="Physics" group by yr having count(yr)=3