首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解相关子查询

理解相关子查询
EN

Stack Overflow用户
提问于 2014-06-03 20:42:30
回答 2查看 247关注 0票数 0

我想创建一个查询,返回日期字段的最新日期,以及每个“评估”记录的整型字段的最高值。我认为需要的是一个相关子查询和使用MAX函数。

示例数据如下所示

日期字段可以具有每个评估的重复日期,但每个重复日期组在整数字段中具有不同的整数。例如

1256 2/6/14 %0

1256 2/6/14 1

1256 1/6/14 0

4534 3/6/14 %0

4534 3/6/14 1

4534 3/6/14 2

代码语言:javascript
复制
select assessment, Max(correctnum) maxofcorrectnum, dateeffect
from lraassm outerassm
where dateeffect =
    (select MAX(dateeffect) maxofdateeffect
    from pthdbo.lraassm innerassm
    innerassm.assessment = outerassm.assessment
    group by innerassm.assessment)
group by assessment, dateeffect

所以我的理论是,内部查询执行,并在外部查询中为外部查询提供日期效果字段的条件,然后外部查询将返回该日期效果的正确字段的最大值,并返回其相应的评估和日期效果。

有人能确认一下这是正确的吗?子查询如何处理行?还有什么其他方法可以解决这个问题呢?谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-06-03 21:05:42

您的查询正在做正确的事情,但就算如此,相关子查询还是有点难以理解。子查询的作用是根据外部查询中的assessment过滤记录,然后返回该评估的最大日期效果。实际上,您不需要在相关查询上使用group by子句。

这些类型的查询在处理ERP系统中的数据时很常见,当您只对“最新”记录感兴趣时,等等。这也被称为“顶部分段”类型的查询(查询优化器有时能够自己找出)。我发现,在SQL Server2005或更高版本上,使用ROW_NUMBER()函数要容易得多。下面的查询应该返回与您的查询相同的结果,即每个assessment都有一条来自lraassm的记录,该记录具有最高的dateeffect和校正Num值。

代码语言:javascript
复制
select * from (
    select 
        assessment, dateeffect, correctnum,
        ROW_NUMBER() OVER (
             PARTITION BY assessment, 
             ORDER BY dateeffect DESC, correctnum DESC
        ) AS segment
    from lraassm) AS innerQuery
where segment = 1
票数 0
EN

Stack Overflow用户

发布于 2014-06-03 21:06:14

这是我使用我的表解出的查询。但是它会让你走上正确的道路,你应该能够在中替换你的字段/表。

代码语言:javascript
复制
 Select * from Decode
 where updated_time = (Select MAX(updated_time)from DECODE)

该查询将为您提供具有最新updated_time的每条记录。下一个查询将返回最大的entry_id值以及这些记录中的最新updated_time

代码语言:javascript
复制
Select MAX(entry_id), updated_time from Decode
where updated_time = (Select MAX(updated_time)from DECODE)
group by updated_time

结果是2列1记录,第一列是条目id的最大值,第二列是最近的updated_time。这就是你要退还的东西吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24015488

复制
相关文章

相似问题

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