我正在尝试编写查询表Z_INSUR的查询。我想找到所有实例,其中相同的EMP具有多于1行,其中INSUR_TYPE是M.我想看到所有执行此操作的EMP,这就是我将UNIQUE部分添加到查询的原因。以下是我到目前为止所尝试的但它不起作用。有人可以帮我弄这个吗?我正在使用ORacle
select UNIQUE(EMP) from Z_INSUR where COUNT(INSUR_TYPE = 'M') > 1;
答案 0 :(得分:3)
由于您未指定,我将假设您正在使用SQL Server。
select emp from z_insur where insur_type = 'm' group by emp having count(emp) > 1
答案 1 :(得分:3)
SELECT EMP
FROM Z_INSUR
WHERE INSUR_TYPE = 'M'
GROUP BY EMP
HAVING count(*) > 1;
答案 2 :(得分:1)
我假设您希望每个在同一个表中有多行的EMP但不一定多于一行的行INSUR_TYPE = 'M'
。
如果您想查看具有INSUR_TYPE = 'M'
为真的多行的EMP,最好选择Fabien的解决方案。如果没有,他就错了,请考虑一下。
SELECT EMP
FROM Z_INSUR
GROUP BY EMP
HAVING SUM(CASE WHEN INSUR_TYPE = 'M' THEN 1 ELSE 0 END) > 1;