小编Mar*_*cio的帖子

在SQL中选择一个不在Group By中的列

我一直试图找到一些关于如何选择SQL中的Group By语句中未包含的非聚合列的信息,但到目前为止我找到的任何内容似乎都没有回答我的问题.我有一张桌子,上面有三列,我想要它.一个是创建日期,一个是通过特定声明ID对记录进行分组的ID,最后一个是PK.我想在每组声明ID中找到具有最大创建日期的记录.我选择了MAX(创建日期)和Claim ID(cpe.fmgcms_cpeclaimid),并按照声明ID进行分组.但是我需要来自这些记录的PK(cpe.fmgcms_claimid),如果我尝试将它添加到我的select子句中,我会收到错误.而且我不能将它添加到我的group by子句中,因为它会抛弃我想要的分组.有谁知道这方面的任何变通办法?以下是我的代码示例:

Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid 
from Filteredfmgcms_claimpaymentestimate cpe
where cpe.createdon < 'reportstartdate'
group by cpe.fmgcms_cpeclaimid
Run Code Online (Sandbox Code Playgroud)

这是我想得到的结果:

Select MAX(cpe.createdon) As MaxDate, cpe.fmgcms_cpeclaimid, cpe.fmgcms_claimid 
from Filteredfmgcms_claimpaymentestimate cpe
where cpe.createdon < 'reportstartdate'
group by cpe.fmgcms_cpeclaimid
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008 greatest-n-per-group

46
推荐指数
5
解决办法
10万
查看次数