使用HAVING从教程表中进行SQL查询

时间:2014-06-02 18:10:40

标签: sql

我有一个教程我已经慢慢解决并需要帮助,因为HAVING不是我最强的套装之一。

这是网站:

Tutorial

问题是第9个问题:

  

显示物理学三个奖项的年份。

Table: nobel(yr, subject, winner)  

你能告诉我怎么解决这个问题吗?

3 个答案:

答案 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