SQL查询查找具有多行的字段

时间:2013-09-16 14:48:51

标签: sql oracle

我正在尝试编写查询表Z_INSUR的查询。我想找到所有实例,其中相同的EMP具有多于1行,其中INSUR_TYPE是M.我想看到所有执行此操作的EMP,这就是我将UNIQUE部分添加到查询的原因。以下是我到目前为止所尝试的但它不起作用。有人可以帮我弄这个吗?我正在使用ORacle

select UNIQUE(EMP) from Z_INSUR where COUNT(INSUR_TYPE = 'M') > 1;

3 个答案:

答案 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;