>  Q&A  >  본문

테이블에서 최대값을 찾은 후 SQL 그룹을 별도로 표시하고 각 SQL 그룹의 최대값 개수를 표시합니다.

아아아아

그래서 이것은 내 테이블 SERVICE이며, (보시다시피) 최대 경험치는 100입니다. 위치(왼쪽, 오른쪽, 위쪽, 아래쪽)별로 구성된 그룹별로 경험치 100이 나타나는 횟수를 구하는 쿼리를 작성해야 합니다.

그래서 제가 쓴 글은 다음과 같습니다:-

으아악

예상 출력:-

으아악

하지만, 오류가 발생했습니다. - "GROUP BY 표현식이 아닙니다."

내 논리는 먼저 그것을 그룹으로 나눈 다음 had 절을 사용하여 최대 값과 동일한 경험을 가진 각 그룹의 튜플을 계산한다는 것입니다. 경험.

P粉451614834P粉451614834190일 전380

모든 응답(2)나는 대답할 것이다

  • P粉718730956

    P粉7187309562024-03-31 14:00:05

    한 가지 방법은 최대값만 반환하는 하위 쿼리와 함께 Left 조인을 사용하는 것입니다. 임의의 최대값을 갖는 그룹을 반환하려면 케이스가 필요합니다.

    으아악

    https://dbfiddle.uk/-8pHZ8wm

    쉽게 이해하기 위해 아래 쿼리를 실행하면 서비스 테이블의 값 100을 제외한 모든 행에서 max_experience가 비어 있음을 알 수 있습니다. 간단히 말해, 아직 최대 경험치에 도달하지 않은 값이 100과 0인 그룹의 행만 계산하면 됩니다.

    으아악

    https://dbfiddle.uk/al8YYLk9

    편집. 답변은 Oracle에서도 작동하지만 하위 쿼리 뒤의 키워드를 제거해야 합니다 as

    으아악

    https://dbfiddle.uk/hhGB_xXx

    회신하다
    0
  • P粉936568533

    P粉9365685332024-03-31 09:12:10

    사용 求和:

    으아아아

    바이올린을 보세요.

    회신하다
    0
  • 취소회신하다