이것은 다소 복잡한 쿼리이지만, 나는 스누커 매치의 데이터베이스를 가지고 있으며 누가 가장 많은 결정 프레임을 플레이하고 이겼는지에 대한 통계를 생성하려고합니다 (규칙에 대해 걱정하지 마십시오. 당신이 게임을 모르는 경우).여러 열에서 DISTINCT를 선택하십시오.
테이블 : 나는 여러 열을 지원하지 않습니다 DISTINCT 생각으로
이SELECT COUNT(*) AS played, DISTINCT(player1,player2) AS playerID
FROM matches
WHERE (player1Score=BestOf/2 + 0.5 AND player2Score=BestOf/2 - 0.5)
GROUP BY playerID
위의 쿼리가 작동하지 않습니다 :
ID player1 player2 bestOf player1Score player2Score
1 1 2 9 5 0
2 2 1 9 5 4
3 1 2 9 5 4
4 2 1 9 4 5
내가 뭘하려고하면 다음과 같은 것이있다 . 내가 맨 테이블을 찾고 있어요 결과는 다음과 같습니다 그것이 마지막 프레임 아니므로
playerID played won
1 3 2
2 3 1
테이블의 맨 위 행은 표시되지 않습니다.
SELECT GROUP(player1,player2)
SELECT player1 + player2 AS playerID, select DISTINCT(playerID)
SELECT (player1 + player2) AS playerID GROUP BY playerID
좋은 몇 가지 다른 :
I는 다음과 같은 변화를 시도했다. 어떤 힌트를 주시면 감사하겠습니다!
당신은 가능성이') (CONCAT'을 찾고 있습니다를 얻기 위해이 두 테이블을 결합 -functions.html # function_concat – Interrobang
흠 .. 불쾌한 디자인. 데이터베이스 정규화를 배우십시오. 걱정하지 마세요, [정규식] (http://twitter.com/#!/shanselman/status/190543146323685377)이 아니기 때문에 매우 쉽게 배울 수 있습니다 :-) –
플레이어 1과 플레이어가 어떻게 플레이 할 수 있습니까? 오직 세 게임. 샘플 데이터에 따르면, 그들은 4 경기 출전 한 것으로 보인다. 플레이어 1은 3 게임을 얻었고 플레이어 2는 1 게임을 얻었습니다. –