首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何: SQL Server根据其他字段中的最大值选择不同的字段

问如何: SQL Server根据其他字段中的最大值选择不同的字段
EN

Stack Overflow用户
提问于 2012-09-25 02:29:49
回答 1查看 3.2K关注 0票数 2
代码语言:javascript
复制
id   tmpname      date_used        tkt_nr
---|---------|------------------|--------|
1  | template| 04/03/2009 16:10 | 00011  |
2  | templat1| 04/03/2009 16:11 | 00011  |
5  | templat2| 04/03/2009 16:12 | 00011  |
3  | diffname| 03/03/2009 15:11 | 00022  |
4  | diffname| 03/03/2009 16:12 | 00022  |
6  | another | 03/03/2009 16:13 | NULL   |
7  | somethin| 24/12/2008 11:12 | 00023  |
8  | name    | 01/01/2009 12:12 | 00026  |

我希望得到这样的结果:

代码语言:javascript
复制
id   tmpname      date_used        tkt_nr
---|---------|------------------|--------|
5  | templat2| 04/03/2009 16:12 | 00011  |
4  | diffname| 03/03/2009 16:12 | 00022  |
7  | somethin| 24/12/2008 11:12 | 00023  |
8  | name    | 01/01/2009 12:12 | 00026  |

因此,我要寻找的是基于tkt_nr的最大值,具有不同的DateTime值。

我试过几种方法,但总是失败。

代码语言:javascript
复制
SELECT *
FROM  templateFeedback a 
JOIN (
      SELECT ticket_number, MAX(date_used) date_used
      FROM   templateFeedback
      GROUP BY ticket_number
     ) b 
ON a.ticket_number = b.ticket_number AND a.date_used = b.date_used

如果有任何帮助,我将不胜感激。不幸的是,我需要代码与SQL Server兼容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-25 02:42:54

自从我发现了窗口函数后,我就不再这样做了。通常,有两条记录具有相同的时间戳,而我在结果集中得到两条记录。这是tSQL的代码。与Oracle类似。我认为mySQL还不支持这一点。

代码语言:javascript
复制
Select id, tmpname, date_used, tkt_nbr
From 
(
    Select id, tmpname, date_used, tkt_nbr,
        rownum = Row_Number() Over (Partition by tkt_nbr Order by date_used desc)
) x
Where row_num=1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12570747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档