데이터베이스에 2 개의 테이블이 있습니다. 하나는 'LEAGUES'이고 다른 하나는 'MATCHES'입니다. 나는 그 리그와 관련된 경기의 유리한 결과에 따라 각 리그의 승리 율을 얻고 싶습니다.
테이블의 구조 :
####################### ###########################
# TABLE LEAGUES # # TABLE MATCHES #
####################### ###########################
+----------+----------+ +-------------------------+
| ID | name | |ID|match|League_id|Result|
+----------+----------+ +--+-----+---------+------+
| 1 | aaa | |1 |xxxxx| 1 | W |
| 2 | bbb | |2 |xxxxx| 1 | L |
| 3 | ccc | |3 |xxxxx| 2 | W |
| 4 | ddd | |4 |xxxxx| 3 | W |
+----------+----------+ |5 |xxxxx| 3 | L |
|6 |xxxxx| 3 | W |
+--+-----+---------+------+
내가 원하는 결과 :
#######################
# RESULT #
#######################
+----------+----------+
|league.id | Winrate |
+----------+----------+
| 1 | 50% |
| 2 | 100% |
| 3 | 66% |
+----------+----------+
다음 코드를 시도했지만 하위 쿼리가 둘 이상의 값을 반환하기 때문에 작동하지 않습니다 :
SELECT leagues.id, COUNT(leagues.id)*100/(SELECT COUNT(leagues.id)
FROM leagues,matches WHERE
leagues.id=matches.League_id
GROUP BY leagues.id) as winrate
FROM leagues,matches
WHERE leagues.id=matches.League_id and matches.result like 'W'
GROUP BY leagues.id
이러한 결과를 얻는 다른 방법이 있습니까? 미리 감사드립니다.
- 답변 # 1
관련 자료
- javascript - 시간 속성에서 지금의 시간을 어떻게 얻을 수 있습니까?
- c++ - C ++ 20 std lib를 어떻게 구할 수 있습니까?
- php - 다음 어레이를 어떻게 구할 수 있습니까?
- c# - linq - 객체의 가치를 얻는 방법
- printing : 새로운 MacBook Air M1에서 작동하도록 프린터를 어떻게 얻을 수 있습니까?
- sql - 신분증의 최신 2 개 기록을 얻는 방법
- c# - 탁구에서 변형을 무작위로 이동하려면 어떻게해야합니까?
- dataset - R에서 카운트의 절반을 어떻게 선택할 수 있습니까?
- stream - Deno에서 파일 체크섬을 얻으려면 어떻게해야합니까?
- java - 배열의 행 합계를 어떻게 얻습니까?
- sapui5 - UI5 라우팅의 URL에서 해시 기호 (`#`)를 제거하는 방법은 무엇입니까?
- Quicksight에서 마지막 기록 만 얻는 방법은 무엇입니까?
- mobile - 앱 Android에서 adb 출력을 얻는 방법은 무엇입니까?
- 시간을 얻고 파이썬에서 UTC로 변환하는 방법
- linux - VM에서 실행되는 OS 버전을 어떻게 볼 수 있습니까?
- html - PHP 클릭 한 링크의 이름을 얻는 방법?
- python 3.x - Flask, requestfiles로 파일 부분을 가져올 수 없습니다
- python 3.x - USB pendrive의 용량을 얻는 방법은 무엇입니까?
- javascript - 이 배열의 모든 자손을 얻는 방법은 무엇입니까?
- javascript - 다음 코드에 숫자를 어떻게 추가 할 수 있습니까?
원하는 것 같습니다 :
참고 사항 :
당신은
leagues
가 필요하지 않습니다 필요한 필드가matches
에 있기 때문에 테이블 .적절하고 명시적인표준
JOIN
배우기 구문 (이 쿼리에는 필요하지 않지만).MySQL은 숫자 컨텍스트에서 부울을 숫자로 처리합니다. true는 1, false는 0이므로
AVG( <boolean expression> )
참 값의 비율을 반환합니다. 꽤 근사하다.그들은 거의 같은 일을하지만
=
like
가 아닌 평등 비교에 더 일반적으로 사용됩니다. .