我有一张表格,上面有关于患者及其诊断的信息。每位患者都有一个唯一的标识符,由NUM_SEQUENCIAL
给出,可以进行多次诊断。我已从较大的表中提取信息,并使用以下查询:
select DISTINCT
(NUM_SEQUENCIAL), COD_DIAGNOSTICO
FROM
PCE_RP.DIAGNOSTICOS_DOENTE
WHERE
COD_DIAGNOSTICO = '153' OR
COD_DIAGNOSTICO = '1530' OR
COD_DIAGNOSTICO = '1531' OR
COD_DIAGNOSTICO = '1532' OR
COD_DIAGNOSTICO = '1533' OR
COD_DIAGNOSTICO = '1534' OR
COD_DIAGNOSTICO = '1536' OR
COD_DIAGNOSTICO = '1537' OR
COD_DIAGNOSTICO = '1538' OR
COD_DIAGNOSTICO = '1539' OR
COD_DIAGNOSTICO = '1540' OR
COD_DIAGNOSTICO = '1541';
结果如下表:
NUM_SEQUENCIAL | COD_DIAGNOSTICO
2 | 1541
3 | 153
3 | 1533
4 | 1536
4 | 153
问题:如何选择具有给定COD_DIAGNOSTICO
的唯一患者记录?它可以是任何COD_DIAGNOSTICO
,我只想获得如下的表格,例如:
NUM_SEQUENCIAL | COD_DIAGNOSTICO
2 | 1541
3 | 153
4 | 1536
提前致谢。
答案 0 :(得分:3)
我发现MAX和MIN都适用于此。 Max更好,因为它永远不会选择空值。
SELECT
(NUM_SEQUENCIAL), MAX(COD_DIAGNOSTICO ) COD_DIAGNOSTICO
FROM
PCE_RP.DIAGNOSTICOS_DOENTE
WHERE
COD_DIAGNOSTICO = '153' OR
COD_DIAGNOSTICO = '1530' OR
COD_DIAGNOSTICO = '1531' OR
COD_DIAGNOSTICO = '1532' OR
COD_DIAGNOSTICO = '1533' OR
COD_DIAGNOSTICO = '1534' OR
COD_DIAGNOSTICO = '1536' OR
COD_DIAGNOSTICO = '1537' OR
COD_DIAGNOSTICO = '1538' OR
COD_DIAGNOSTICO = '1539' OR
COD_DIAGNOSTICO = '1540' OR
COD_DIAGNOSTICO = '1541';
GROUP BY NUM_SEQUENCIAL
您应该使用IN()而不是所有这些OR。但我暂时离开了他们。
答案 1 :(得分:0)
尝试
Guava's