Sql 分区上的最大查询数

Sql 分区上的最大查询数,sql,Sql,我想选择与查询相关的最大值,但所有结果都会出现。有什么想法吗 质疑 结果 MAXRecID MAXSetID MAXRID PreReifiedValue ComplianceState 72057594038117564 16780566 16780622 10 2 72057594038117565 16780570 16780620 0 2 请尝试此查询 S

我想选择与查询相关的最大值,但所有结果都会出现。有什么想法吗

质疑

结果

MAXRecID            MAXSetID    MAXRID  PreReifiedValue ComplianceState
72057594038117564   16780566    16780622    10                2
72057594038117565   16780570    16780620     0                2
请尝试此查询

    SELECT 
       MAX(tmp.MAXRecID), MAX(tmp.MAXSetID), MAX(tmp.MAXRID), MAX(tmp.PreReifiedValue), MAX(tmp.ComplianceState)
    FROM (
    SELECT MAXRecID,MAXSetID,MAXRID,PreReifiedValue,ComplianceState
    FROM v_CI_CurrentComplianceStatus as A
    INNER JOIN v_CIRules as B
    ON B.CI_ID = A.CI_ID
    INNER JOIN v_R_System  as C
    ON C.ResourceID = A.ItemKey
    INNER JOIN 
     ( SELECT PreReifiedValue,setting_CI_ID,
          MAX(RecordID) AS MAXRecID,
          MAX(SettingID) AS MAXSetID,
          MAX(RuleID) AS MAXRID
       FROM CI_CurrentRuleDetail
       GROUP BY PreReifiedValue,Setting_CI_ID,instancedata
     ) AS D
    ON D.Setting_CI_ID = A.CI_ID
    ) AS tmp
    GROUP by tmp.MAXRecID, tmp.MAXSetID, tmp.MAXRID, tmp.PreReifiedValue, tmp.rulename, tmp.ComplianceState

我不知道你到底想要什么结果,但是你在最后的
分组中得到了一个额外的栏目。当您删除
rulename
时,它相当于
DISTINCT
。简单规则:当不涉及聚合函数时,请选择DISTINCT而不是GROUP BY。谢谢,已收到;Msg 207,级别16,状态1,第21行无效的列名“rulename”。我不知道什么是rulename,但如果您在内部选择中的select之后添加“rulename”,我认为您解决了错误@Ellefson不走运,来的是342排而不是2排
    SELECT 
       MAX(tmp.MAXRecID), MAX(tmp.MAXSetID), MAX(tmp.MAXRID), MAX(tmp.PreReifiedValue), MAX(tmp.ComplianceState)
    FROM (
    SELECT MAXRecID,MAXSetID,MAXRID,PreReifiedValue,ComplianceState
    FROM v_CI_CurrentComplianceStatus as A
    INNER JOIN v_CIRules as B
    ON B.CI_ID = A.CI_ID
    INNER JOIN v_R_System  as C
    ON C.ResourceID = A.ItemKey
    INNER JOIN 
     ( SELECT PreReifiedValue,setting_CI_ID,
          MAX(RecordID) AS MAXRecID,
          MAX(SettingID) AS MAXSetID,
          MAX(RuleID) AS MAXRID
       FROM CI_CurrentRuleDetail
       GROUP BY PreReifiedValue,Setting_CI_ID,instancedata
     ) AS D
    ON D.Setting_CI_ID = A.CI_ID
    ) AS tmp
    GROUP by tmp.MAXRecID, tmp.MAXSetID, tmp.MAXRID, tmp.PreReifiedValue, tmp.rulename, tmp.ComplianceState