【问题标题】:window function-choose the most recent row窗口函数——选择最近的一行
【发布时间】:2017-08-19 15:19:22
【问题描述】:

我需要根据创建日期选择最近的行。 这是我的桌子:

REF X      REF Y            EMLOYEE CREATION DATE
2879074 DLP/2015.01551-B.01 Didier  3/5/2015
2879074 DLP/2015.00841-A.01 Didier  2/5/2015
2879074 DLP/2015.00146-A.01 jacques 1/8/2015
2879074 DLP/2014.07840-A.02         1/6/2015
2879074 DLP/2014.05967-B.03 diet    6/21/2016
2879074 DLP/2014.05967-B.03 ext     6/21/2016
2879074 DLP/2014.05967-B.02 David   10/21/2015
2879074 DLP/2014.05967-B.02 ieva    10/21/2015
2879074 DLP/2014.05967-B.02 laetitia10/21/2015
2879074 DLP/2014.05967-B.02 PLN 10/21/2015
2879074 DLP/2014.05967-B.01 David   4/14/2015
2879074 DLP/2014.05967-B.01 ieva    4/14/2015
2879074 DLP/2014.05967-B.01 laetitia4/14/2015
2879074 DLP/2014.05967-B.01 PLN    4/14/2015
2733407 DLP/2014.00138-B.03 Andy    9/6/2016
2733407 DLP/2014.00138-B.03 Nell    9/6/2016
2733407 DLP/2014.00138-B.03 stephane9/6/2016
2733407 DLP/2014.00138-B.02 Andy    2/17/2016
2733407 DLP/2014.00138-B.02 Nell    2/17/2016
2733407 DLP/2014.00138-B.02 nicola  2/17/2016
2733407 DLP/2014.00138-B.02 diet    2/17/2016
2733407 DLP/2014.00138-B.01 herve   3/10/2015
2733407 DLP/2014.00138-B.01 nicola  3/10/2015

输出应该是:

Ref x   Ref y   employee           Creation Date
2879074 DLP/2014.05967-B.03 diet    6/21/2016
2879074 DLP/2014.05967-B.03 ext     6/21/2016
2733407 DLP/2014.00138-B.03 Andy    9/6/2016
2733407 DLP/2014.00138-B.03 Nell    9/6/2016
2733407 DLP/2014.00138-B.03 stephane9/6/2016

我猜我必须使用窗口功能,但我无法列出正确的 REF Y。任何帮助将不胜感激 非常感谢

【问题讨论】:

  • 你最近的一行不清楚(至少对我来说)
  • 请张贴 DDL,DML 所涉及的表格,不要张贴图片。拥有此信息有助于其他人快速重现您的问题并更好地解决问题。以下是一些可能有助于您理解的示例。 --样本数据 create table t1 ( id int ) insert into t1 values (1), (2), (1) 我当前的查询/我尝试过的内容: select id,count(*) as cnt from t1 group by id 我当前的结果: id cnt 1 2 2 1 我的预期结果: id cnt 1 2 2 1 1 2
  • 发布涉及的表的ddl,dml有助于其他人快速测试,您可以更快地获得帮助

标签: sql-server sql-server-2012 window-functions


【解决方案1】:

如果您要查找最近的 5 行,您只需这样做:

SELECT TOP 5 * FROM [tablename] ORDER BY [Creation Date] DESC

不需要开窗函数,除非你想实现更复杂的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2015-06-27
    相关资源
    最近更新 更多