首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得记录的最高值

获得记录的最高值
EN

Stack Overflow用户
提问于 2017-10-24 05:44:36
回答 3查看 51关注 0票数 1

我有下面的查询,它返回与其相关的所有严重级别的示例。

但我只需要一个等级级别最高的严重程度。

我试过什么

代码语言:javascript
复制
select S.sampleCode,asd.severityLevelRank
from prod.Samples S
left outer join prod.SampleFractions sf on sf.sampleId=S.sampleId
left outer join prod.LabRepetitions lr on 
sf.sampleFractionId=lr.sampleFractionId
left outer join prod.LabRepetitionResults lrr on 
lrr.labRepetitionId=lr.labRepetitionId
left outer join prod.AssessmentDataChecks asd on 
lrr.labRepetitionResultId=asd.labRepetitionResultId

group by S.sampleCode, asd.severityLevelRank

order by S.sampleCode desc, asd.severityLevelRank desc

我得到了什么,

但是我需要一个最高等级的样本,也就是3。

EN

回答 3

Stack Overflow用户

发布于 2017-10-24 05:46:24

如果您希望按照每组样本的级别来确定最高的严重程度,那么您可以尝试使用DENSE_RANK()。请注意,在这里使用密集秩非常有用,因为它减轻了您在GROUP BY聚合期间删除的重复样例/严重性记录的需要。如果给定样本出现重复严重级别,则该级别不会增加。

代码语言:javascript
复制
SELECT
    sampleCode,
    severityLevelRank
FROM
(
    SELECT
        S.sampleCode, asd.severityLevelRank,
        DENSE_RANK() OVER (PARTITION BY S.sampleCode ORDER BY asd.severityLevelRank) dr
    FROM prod.Samples S
    LEFT JOIN prod.SampleFractions sf
        ON sf.sampleId = S.sampleId
    LEFT JOIN prod.LabRepetitions lr
        ON sf.sampleFractionId = lr.sampleFractionId
    LEFT JOIN prod.LabRepetitionResults lrr
        ON lrr.labRepetitionId = lr.labRepetitionId
    LEFT JOIN prod.AssessmentDataChecks asd
        ON lrr.labRepetitionResultId = asd.labRepetitionResultId
) t
WHERE
    dr = 1
ORDER BY
    sampleCode DESC,
    severityLevelRank DESC
票数 1
EN

Stack Overflow用户

发布于 2017-10-24 05:51:19

只需替换

代码语言:javascript
复制
select S.sampleCode,asd.severityLevelRank

通过

代码语言:javascript
复制
select S.sampleCode, MAX(asd.severityLevelRank)

在选择中。

您还可以添加

代码语言:javascript
复制
WHERE asd.severityLevelRank IS NOT NULL 

下至

若要忽略带有空值的sampleCode,请执行以下操作。

票数 1
EN

Stack Overflow用户

发布于 2017-10-24 05:52:02

除非我遗漏了什么,否则这是一个简单的group bymax

代码语言:javascript
复制
select S.sampleCode, max(asd.severityLevelRank) As severityLevelRank
from prod.Samples S
left outer join prod.SampleFractions sf on sf.sampleId=S.sampleId
left outer join prod.LabRepetitions lr on 
sf.sampleFractionId=lr.sampleFractionId
left outer join prod.LabRepetitionResults lrr on 
lrr.labRepetitionId=lr.labRepetitionId
left outer join prod.AssessmentDataChecks asd on 
lrr.labRepetitionResultId=asd.labRepetitionResultId

group by S.sampleCode

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

https://stackoverflow.com/questions/46902983

复制
相关文章

相似问题

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