【发布时间】:2012-04-19 14:16:47
【问题描述】:
数据:
Name | Score | Date
==
John | 10 | 09/01/2012
John | 20 | 09/01/2012
John | 5 | 09/01/2012
Frank | 20 | 11/01/2012
我想运行一条 SQL 语句,它只提取每天的最高分数,所以我不想要一个日期的三个分数,只有最高分数。所以我想从 SQL 得到的回报是:
John | 20 | 09/01/2012
Frank | 20 | 11/01/2012
是否可以通过 SQL 执行此操作,目前我可以在通过检查日期提取所有内容后执行此操作。但如果可以直接从数据库中进行,那就太好了。
我尝试了一些解决方案,但由于日期和分数并不明显,因为我想要最高的,我不确定从哪里开始。 SQL 正在与 MS Access 数据库一起使用。
【问题讨论】:
-
这里有歧义。如果 2012 年 9 月 1 日的数据是针对三个不同名称的,您希望返回什么?日期、该日期的高分以及与该高分匹配的名称?另外,如果两个不同的名字在同一天都有相同的最高分怎么办?
-
谢谢大家。两种解决方案都应该有效。
-
通过编辑,他们有不同的行为,因为你没有指定如果两个不同的人在同一天得分,和/或如果他们并列,应该发生什么应该最高分。
-
@Dems 公平点。这将是每个日期的最高记录。但我认为你的观点是 2 相同的分数。