具有 GROUP、MIN 和 NULL 值的 SQL 命令的唯一结果

Unique results for SQL command with GROUP, MIN and NULL values

我有一个 table inquiry,包含 jobgender 列(女性 TRUE,男性 FALSE)和 salary。 None 列是唯一的,salary 可能包含 NULL。如何找到女性 (TRUE) 每个 job 的最低 salary?如果例如有条目 [pilot ; TRUE ; 100][pilot ; FALSE ; 100][pilot ; TRUE ; NULL][pilot ; FALSE ; 120],下面的代码 returns [pilot ; 100] 两次而不是一次。

SELECT TOP (100) PERCENT T.JOB, T.SALARY
FROM INQUIRY AS T INNER JOIN
    (SELECT JOB, MIN(SALARY) AS SL
    FROM INQUIRY AS T
    WHERE (SALARY IS NOT NULL) AND (GENDER = 1)
    GROUP BY JOB) AS x ON x.JOB = T.JOB AND x.SL = T.SALARY

聚合函数忽略 nulls。失去连接,你应该没问题:

SELECT   job, MIN(salary)
FROM     inquiry
WHERE    gender = 1
GROUP BY job