[英]How do I get the most recent records based on as of date?
I have the following table: 我有下表:
+------------------------------------+
| Number Name Date |
+------------------------------------+
| 1 1050 Name1 2015-01-01 |
| 2 1051 Name2 2015-04-27 |
| 3 1057 Name3 2015-04-27 |
+------------------------------------+
How should I get the most recent records? 我应该如何获取最新记录? I've tried something like:
我已经尝试过类似的东西:
SELECT number, name, MAX(DATE) AS recent_date
FROM Recent_Table
HAVING recent_date < '2015-05-19'
GROUP BY number, name
I'm expecting to get the most recent records but instead I'm getting all three because of my having clause. 我希望获得最新的记录,但是由于我的hading子句,我得到了所有三个记录。 Is there a way to work around this while still keeping my
having
? 有没有一种方法可以解决此同时仍保持我
having
? Thanks. 谢谢。
Expected output would be: 预期输出为:
1051 Name2 2015-04-27
1057 Name3 2015-04-27
Try this 尝试这个
select number, name, date
from Recent_Table
where Date = (SELECT MAX(DATE) AS recent_date
FROM Recent_Table
WHERE DATE < '2015-05-19')
there is problem with name
column not with having
clause. name
列不具有having
子句存在问题。 I think you don't need having
. 我想,你不需要
having
。
Sql fiddle demo SQL小提琴演示
SELECT
number,
name,
DATE AS recent_date
FROM Recent_Table
WHERE DATE = (SELECT MAX(t2.DATE)
FROM Recent_Table t2
WHERE t2.number = t1.number)
SELECT number, name, MAX(DATE) AS recent_date
FROM Recent_Table
WHERE DATE <= MAX(DATE)
GROUP BY number, name
Will return values that are the latest entries 将返回最新条目的值
Let me guess 让我猜猜
SELECT number, name
FROM Recent_Table
WHERE recent_date >= (Select Max(Date) FROM Recent_Table)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.