首页 > 解决方案 > SELECT DISTINCT 在一列上考虑另一列

问题描述

我有

    Id          Number
----------- -----------
950         20213666062
951         20213666062

我只想要每个“数字”一次,即 ID 最高的那个:

    Id          Number
----------- -----------
951         20213666062

SELECT
rarN.intIdRARNomina AS Id,
rarN.chrCUIL AS Number           
FROM dbo.PVN_RAR p
        INNER JOIN dbo.PVN_RARNomina rarN ON p.intIdRAR = rarN.intIdRAR
        INNER JOIN PISCYS.dbo.SYA_UltimosContratoCliente uc ON p.intNroContrato = uc.intNroContrato
WHERE
        p.intIdRAR = 4639

标签: mysqlsqlselectdistinct

解决方案


尝试使用一个简单的GROUP BY查询:

SELECT MAX(Id) AS Id, Number
FROM yourTable
GROUP BY Number;

在您更新的问题/查询的上下文中:

SELECT
    MAX(rarN.intIdRARNomina) AS Id,
    rarN.chrCUIL AS Number
FROM dbo.PVN_RAR p
INNER JOIN dbo.PVN_RARNomina rarN
    ON p.intIdRAR = rarN.intIdRAR
INNER JOIN PISCYS.dbo.SYA_UltimosContratoCliente uc
    ON p.intNroContrato = uc.intNroContrato
WHERE
    p.intIdRAR = 4639
GROUP BY
    Number;

推荐阅读