我正在尝试编写一个查询表 Z_INSUR 的查询。我想查找相同 EMP 具有超过 1 行且 INSUR_TYPE 为 M 的所有实例。我想查看执行此操作的所有 EMP,这就是我将 UNIQUE 部分添加到查询中的原因。以下是我到目前为止尝试过的,但它不起作用。有人可以帮我弄这个吗?我正在使用甲骨文
select UNIQUE(EMP) from Z_INSUR where COUNT(INSUR_TYPE = 'M') > 1;
由于您没有指定,我将假设您使用的是 SQL Server。
select emp from z_insur where insur_type = 'm' group by emp having count(emp) > 1
SELECT EMP
FROM Z_INSUR
WHERE INSUR_TYPE = 'M'
GROUP BY EMP
HAVING count(*) > 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;