아아아아
그래서 이것은 내 테이블 SERVICE이며, (보시다시피) 최대 경험치는 100입니다. 위치(왼쪽, 오른쪽, 위쪽, 아래쪽)별로 구성된 그룹별로 경험치 100이 나타나는 횟수를 구하는 쿼리를 작성해야 합니다.
그래서 제가 쓴 글은 다음과 같습니다:-
으아악예상 출력:-
으아악하지만, 오류가 발생했습니다. - "GROUP BY 표현식이 아닙니다."
내 논리는 먼저 그것을 그룹으로 나눈 다음 had 절을 사용하여 최대 값과 동일한 경험을 가진 각 그룹의 튜플을 계산한다는 것입니다. 경험.
한 가지 방법은 최대값만 반환하는 하위 쿼리와 함께 Left 조인을 사용하는 것입니다. 임의의 최대값을 갖는 그룹을 반환하려면 케이스가 필요합니다.
으아악https://dbfiddle.uk/-8pHZ8wm
쉽게 이해하기 위해 아래 쿼리를 실행하면 서비스 테이블의 값 100을 제외한 모든 행에서 max_experience가 비어 있음을 알 수 있습니다. 간단히 말해, 아직 최대 경험치에 도달하지 않은 값이 100과 0인 그룹의 행만 계산하면 됩니다.
으아악https://dbfiddle.uk/al8YYLk9
편집. 답변은 Oracle에서도 작동하지만 하위 쿼리 뒤의 키워드를 제거해야 합니다
으아악as
https://dbfiddle.uk/hhGB_xXx
사용
으아아아求和
:바이올린을 보세요.