문제

나는 다음과 같은 테이블이 있습니다.

+-----+-----+-------+
| id  | fk  | value |
+-----+-----+-------+
| 0   | 1   | peter |
| 1   | 1   | josh  |
| 3   | 2   | marc  |
| ... | ... | ...   |

이제 하나 이상의 값을 가진 모든 항목을 얻고 싶습니다. 예상 결과는 다음과 같습니다.

+-----+-------+
| fk  | count |
+-----+-------+
| 1   | 2     |
| ... | ...   |

나는 다음과 같은 것을 달성하려고 노력했다.

select fk, count(value) from table where count(value) > 1;

그러나 오라클은 그것을 좋아하지 않았습니다.

그래서 나는 이것을 시도했다 ...

select * from (
    select fk, count(value) as cnt from table
) where cnt > 1;

... 성공하지 못했습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

사용 having 응집체 비교를위한 절.

또한 쿼리가 올바르게 작동하기 위해 집계하는 것에 의해 그룹화되어야합니다. 다음은 시작이지만, 당신은 그룹별로 그룹을 놓치기 때문에 여전히 작동하지 않습니다. 정확히 무엇을 계산하려고합니까?

select fk, count(value) 
from table 
group by fk
having count(value) > 1;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top