제게 이런 테이블(table1)이 있다고 했을때
id |
type |
num |
1 |
a |
10 |
1 |
b |
11 |
2 |
a |
11 |
2 |
b |
14 |
2 |
a |
13 |
1 |
a |
14 |
1 |
a |
12 |
저는 max(num)인데 b 타입이면서 id로 group by 를 한거를 구하고 싶어요, 추가하자면 type a가 사람당 (id로 구분 지을시 두 사람이겠죠) 몇번 나오는지에 따라서요.
설명을 잘 못하겠는데 예를 들자면
SELECT MAX(num) FROM table1 WHERE type='a' GROUP BY id HAVING COUNT(table1.type)>2 라는 쿼리를 써서 각 사람에 대해서 타입이 a일 경우에 그리고 그 a타입인 횟수가 2번이 넘어가는 경우에 한해서 num의 최대값을 구해봤는데요. 여기서 제가 궁금한건
각 사람에 대해서 "타입이 b인 경우이나" a타입인 횟수가 2번이 넘어가는 경우에 한해서 num의 최대값을 구하는 방법이에요.. 이게 단순히
SELECT MAX(num) FROM table1 WHERE type='b' GROUP BY id HAVING COUNT(table1.type='a')>2 라고 한다고 되는게 아니더라고요ㅠㅠ SUM도 써보고 했는데 모르겠어서 좀 도움을 구하고자 올려봅니다. 조건문을 걸어서 해야하는건지 좀 알려주세요 |