내부 조인이 이미 존재하는 그룹당 최대 수

n으로

나는 그룹당 가장 큰 문제에 대한 간단한 확장을 가지고 있습니다.

내 질문은 다음과 같습니다.

$q = 
'SELECT            
    played.words, MAX(played.score) max_score, played.longest, played.game_options, 
    users.first_name 
FROM played 
INNER JOIN users
ON played.user_id = users.user_id       
GROUP BY game_options 
';

불행히도 주어진 game_options에 대해 항상 최대 점수를 얻지 만 user.first_name은 일반적으로 잘못되었습니다 (예 : 동일한 game_options 값의 경우 Tom이 먼저 플레이하고 63을 얻었고 Joe가 2 위를하고 100을 얻었습니다. Joe 대신, Tom은 Joe의 높은 점수와 함께 반환됩니다.)

일종의 내부 조인이 필요하다고 가정하지만 두 테이블 (사용자 테이블 및 게임 플레이 테이블)과 관련된 내부 조인이 이미 있기 때문에 알아낼 수 없습니다. 나는 이것이 중복 된 질문이라고 상상해야하는데 그것을 찾을 수 없었다. 도움을 주셔서 감사합니다.

ypercubeᵀᴹ

모든 동점 결과를 표시하는 한 가지 방법 :

SELECT            
    p.words, 
    p.score AS max_score, 
    p.longest, 
    p.game_options, 
    u.first_name, 
    m.cnt AS game_played_count
FROM played AS p
  INNER JOIN users AS u
    ON  p.user_id = u.user_id
  INNER JOIN 
    ( SELECT 
          pp.game_options, 
          MAX(pp.score) AS score,
          COUNT(*) AS cnt
      FROM played AS pp      
      GROUP BY pp.game_options 
    ) AS m
    ON  m.game_options = p.game_options
    AND m.score = p.score ;

사전 정의 된 순서에 따라 결정된 동점 :

SELECT            
    p.words, 
    p.score AS max_score, 
    p.longest, 
    p.game_options, 
    u.first_name,
    dp.cnt AS game_played_count
FROM 
    ( SELECT game_options,
             COUNT(*) AS cnt
      FROM played
      GROUP BY game_options
    ) AS dp
  INNER JOIN played AS p
    ON  p.play_id =                         -- assuming that `play_id` is the PK
    ( SELECT pi.play_id
      FROM played AS pi
      WHERE pi.game_options = dp.game_options   
      ORDER BY pi.score DESC,               -- the predefined
               pi.play_id ASC               -- order
      LIMIT 1 
    ) 
  INNER JOIN users AS u
    ON  p.user_id = u.user_id ;

인덱스 (game_options, score, play_id)는 두 쿼리 모두에서 효율성 도움이됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

그룹화 된 데이터 프레임 R의 최대 값에 해당하는 변수 반환

분류에서Dev

추가 기준이있는 그룹당 SQL 최대 N

분류에서Dev

count () 조건이있는 SQL 내부 조인 및 관계형 대수

분류에서Dev

단일 테이블에 대한 내부 조인이있는 SQL 수

분류에서Dev

존재할 수 있지만 항상 존재하지는 않는 정규식 문제 파이썬 캡처 그룹

분류에서Dev

그룹 내에서 최대 값이있는 행 찾기

분류에서Dev

Pandas는 그룹 내 여러 조건을 사용하여 값이 존재하는지 확인하고 true이면 값을 계산합니다.

분류에서Dev

그룹당 최대 값이있는 다중 인덱스 데이터 프레임 삭제 행

분류에서Dev

동일한 그룹당 다른 변수의 최소값을 기반으로 한 그룹당 케이스 수

분류에서Dev

특수 그룹 hql의 최대 열을 기준으로 조건부 업데이트

분류에서Dev

내부 내용의 크기를 조정하지 않는 최대 높이

분류에서Dev

존재하지 않는 행에 대해 0 값이 반환되는 Oracle 외부 조인

분류에서Dev

존재하거나 존재하지 않을 수있는 여러 그룹이있는 입력의 Python 정규식 그룹 구문 분석

분류에서Dev

테이블이 존재하지 않는 경우에만 최대 절전 모드로 만들 수 있습니까?

분류에서Dev

존재할 수있는 최대 웹 사이트 수는 얼마입니까?

분류에서Dev

세 변수에 대한 두 테이블의 내부 조인

분류에서Dev

최대 절전 모드에서 네이티브 쿼리를 사용하는 내부 조인

분류에서Dev

존재하지 않는 태그에 대한 Maven 릴리스 플러그인 "태그가 이미 있습니다."

분류에서Dev

Imagemagick는 이미지를 생성하고 최대 크기로 이미지를 내부에 배치합니다.

분류에서Dev

그룹 채팅 응용 프로그램에서 지정된 참가자의 대화가 이미 존재하는지 확인

분류에서Dev

해당 그룹 내의 최대 필드 값에 해당하는 Mysql 그룹화 및 가져 오기 행

분류에서Dev

수정 된 git 태그 이름과 메시지가 이미 존재하기 때문에 거부 됨

분류에서Dev

MySQL (버전 8.0 이하) : SELECT WHERE 최대 수준으로 여러 열 및 그룹

분류에서Dev

이 쿼리에 대해 올바른 내부 조인을 수행하는 방법은 무엇입니까?

분류에서Dev

Rails에 이미 존재하는 테이블에 대한 마이그레이션을 만드는 방법

분류에서Dev

각 값이 최대 한 번만 존재할 수있는 테이블 생성

분류에서Dev

postgres에서 그룹당 최소 k 개의 발생이있는 고유 값의 수를 계산합니다.

분류에서Dev

R의 그룹 내 순위, 그룹당 고유 변수 수는?

분류에서Dev

그룹당 MySQL 최대 개수

Related 관련 기사

  1. 1

    그룹화 된 데이터 프레임 R의 최대 값에 해당하는 변수 반환

  2. 2

    추가 기준이있는 그룹당 SQL 최대 N

  3. 3

    count () 조건이있는 SQL 내부 조인 및 관계형 대수

  4. 4

    단일 테이블에 대한 내부 조인이있는 SQL 수

  5. 5

    존재할 수 있지만 항상 존재하지는 않는 정규식 문제 파이썬 캡처 그룹

  6. 6

    그룹 내에서 최대 값이있는 행 찾기

  7. 7

    Pandas는 그룹 내 여러 조건을 사용하여 값이 존재하는지 확인하고 true이면 값을 계산합니다.

  8. 8

    그룹당 최대 값이있는 다중 인덱스 데이터 프레임 삭제 행

  9. 9

    동일한 그룹당 다른 변수의 최소값을 기반으로 한 그룹당 케이스 수

  10. 10

    특수 그룹 hql의 최대 열을 기준으로 조건부 업데이트

  11. 11

    내부 내용의 크기를 조정하지 않는 최대 높이

  12. 12

    존재하지 않는 행에 대해 0 값이 반환되는 Oracle 외부 조인

  13. 13

    존재하거나 존재하지 않을 수있는 여러 그룹이있는 입력의 Python 정규식 그룹 구문 분석

  14. 14

    테이블이 존재하지 않는 경우에만 최대 절전 모드로 만들 수 있습니까?

  15. 15

    존재할 수있는 최대 웹 사이트 수는 얼마입니까?

  16. 16

    세 변수에 대한 두 테이블의 내부 조인

  17. 17

    최대 절전 모드에서 네이티브 쿼리를 사용하는 내부 조인

  18. 18

    존재하지 않는 태그에 대한 Maven 릴리스 플러그인 "태그가 이미 있습니다."

  19. 19

    Imagemagick는 이미지를 생성하고 최대 크기로 이미지를 내부에 배치합니다.

  20. 20

    그룹 채팅 응용 프로그램에서 지정된 참가자의 대화가 이미 존재하는지 확인

  21. 21

    해당 그룹 내의 최대 필드 값에 해당하는 Mysql 그룹화 및 가져 오기 행

  22. 22

    수정 된 git 태그 이름과 메시지가 이미 존재하기 때문에 거부 됨

  23. 23

    MySQL (버전 8.0 이하) : SELECT WHERE 최대 수준으로 여러 열 및 그룹

  24. 24

    이 쿼리에 대해 올바른 내부 조인을 수행하는 방법은 무엇입니까?

  25. 25

    Rails에 이미 존재하는 테이블에 대한 마이그레이션을 만드는 방법

  26. 26

    각 값이 최대 한 번만 존재할 수있는 테이블 생성

  27. 27

    postgres에서 그룹당 최소 k 개의 발생이있는 고유 값의 수를 계산합니다.

  28. 28

    R의 그룹 내 순위, 그룹당 고유 변수 수는?

  29. 29

    그룹당 MySQL 최대 개수

뜨겁다태그

보관