加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL:如何在max datetime的基础上为多个id选择单个记录?

发布时间:2020-12-12 07:48:02 所属栏目:MsSql教程 来源:网络整理
导读:我有以下SQL表, Id WindSpeed DateTime--------------------------------------1 1.1 2009-09-14 16:11:38.3831 1.9 2009-09-15 16:11:38.3831 2.0 2009-09-16 16:11:38.3831 1.8 2009-09-17 16:11:38.3831 1.7 2009-09-19 16:11:38.3822 1.9 2009-09-19 16:1
我有以下SQL表,
Id      WindSpeed      DateTime
--------------------------------------
1       1.1            2009-09-14 16:11:38.383
1       1.9            2009-09-15 16:11:38.383
1       2.0            2009-09-16 16:11:38.383
1       1.8            2009-09-17 16:11:38.383
1       1.7            2009-09-19 16:11:38.382
2       1.9            2009-09-19 16:11:38.383
1       1.6            2009-09-19 16:11:38.383
2       1.2            2009-09-20 16:11:38.383

我想编写一个查询,它将从上表返回以下结果集:

Id      WindSpeed      DateTime
--------------------------------------
1       1.6            2009-09-19 16:11:38.383
2       1.2            2009-09-20 16:11:38.383

以上reuslt包含最新的(基于该id的最新日期时间)单个条目.这意味着我有多个记录ID与日期时间.

我想得到所有id的最新单一条目.

解决方法

SELECT        a.Id,a.WindSpeed,a.DateTime
FROM          YourTable AS a
INNER JOIN     
(
    SELECT    ID,Max(DateTime) AS DateTime
    FROM      YourTable
    GROUP BY  ID
) AS b
ON            a.ID = b.ID
AND           a.DateTime = b.DateTime

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读