저는 10 핀 볼링 경기 결과를 기록하는 애플리케이션을 작성하고 있습니다. 제출 비트를 완료했지만 결과를 표시하는 데 고착되어 있습니다. 구조는 다음과 같습니다.
id fixture_id member_id team_id game score
1 1 1 1 1 189
2 1 1 1 2 167
3 1 1 1 3 190
4 1 2 2 1 100
5 1 2 2 2 167
6 1 2 2 3 158
위의 예에서 저는 각 사람이 3 개의 게임을했다고 가정하고 있지만 여러 게임을 할 수 있습니다.
더 친숙한 형식으로 데이터를 얻으려면 어떻게해야합니까?
예를 들면 :
id - fixture_id - member_id - team_id - game_1 - game_2 - game_3
여기서 game_1, game_2 및 game_3 열은 해당 게임의 점수에 해당합니다.
조건부 집계를 사용하여 피벗 할 수 있지만 생성하려는 열 수를 미리 알고 있어야합니다. 아래 솔루션은 사용자 당 최대 3 개의 게임 을 처리합니다 (그 이상을 처리하기 위해 더 select
많은 max(case ...)
표현식으로 절을 확장 할 수 있음).
select
fixture_id,
member_id,
team_id,
max(case when game = 1 then score end) game_1,
max(case when game = 2 then score end) game_2,
max(case when game = 3 then score end) game_3
from mytable
group by
fixture_id,
member_id,
team_id
fixture_id | member_id | team_id | game_1 | game_2 | game_3 --------- : | -------- : | ------ : | ----- : | ----- : | ----- : 1 | 1 | 1 | 189 | 167 | 190 1 | 2 | 2 | 100 | 167 | 158
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다