【问题标题】:Why can't I get the right answer in this SQLzoo tutorial?为什么我不能在这个 SQLzoo 教程中得到正确的答案?
【发布时间】:2009-01-11 14:05:33
【问题描述】:

Problem 2b 如下:

2b。对于每个主题,显示获奖的第一年。

诺贝尔奖(年,主题,获奖者)

我的解决方案是这样的:
SELECT DISTINCT subject, yr
FROM nobel
ORDER BY yr ASC;

为什么这不起作用?

【问题讨论】:

    标签: sql mysql-5.0


    【解决方案1】:

    您可以不使用 group by 或 min 以不同的方式进行操作

    select distinct subject, yr from nobel x
      where yr <= all
        (select yr from nobel y
         where y.subject = x.subject)
    

    但它肯定是更多的工作。

    【讨论】:

      【解决方案2】:

      您的答案在学科和年份的每个不同组合中都会出现一行。

      正确答案按学科分组,得到每个学科的最小年份。

      足够的线索?

      【讨论】:

      • 哦。是的,这有帮助。谢谢。
      • SELECT subject, min(yr) FROM nobel GROUP BY subject;
      • SELECT subject, MIN(yr) AS yr FROM nobel GROUP BY subject ORDER BY yr
      • "AS" 为列命名,因此您得到的不是“Expr1”之类的默认值,而是“yr”
      【解决方案3】:
      SELECT subject, MIN(yr)
      FROM nobel
      GROUP BY subject;
      

      耶!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-14
        • 1970-01-01
        相关资源
        最近更新 更多