테이블에서 내림차순으로 정렬 된 모든 팀의 상위 5 점 합계를 추출해야하는 프로젝트를 진행 중입니다. 여기 mysql의 테이블에서 최고 점수 5 점을 얻는 방법
는사람이 쿼리에 대해
감사
테이블에서 내림차순으로 정렬 된 모든 팀의 상위 5 점 합계를 추출해야하는 프로젝트를 진행 중입니다. 여기 mysql의 테이블에서 최고 점수 5 점을 얻는 방법
는사람이 쿼리에 대해
감사
SELECT team_id AS `team` , (
SELECT SUM(score)
FROM `table`
WHERE team_id = `team`
ORDER BY score DESC
LIMIT 5
) AS `score`
FROM `table`
GROUP BY team_id
ORDER BY `score` DESC
간단하게 좋은 쿼리를 보내 주셔서 감사합니다. – user1684080
$count = 0;
foreach($this->conn->query("SELECT * FROM scores DESC LIMIT 5") as $rows){
$count += $rows;
}
SELECT sum(score) as total
FROM
(SELECT score FROM your_table ORDER BY by score DESC LIMIT 1,5)
교체 테이블 구조
입니다 이름이 적힌.
SELECT team_id, SUM(score) AS `score`
FROM `foo`
WHERE
(SELECT COUNT(*)
FROM `foo` AS t1
WHERE t1.score >= `foo`.score) <= 5
GROUP BY team_id
ORDER BY `score` DESC;
상위 5 개를 선택하는 subselect를 수행 한 다음, 외부 선택에서 합계를 수행하십시오. 거기에 그룹화가 필요합니다.이 작업을 시작하고 질문을 편집 할 수 있습니까? '좋은 연습이야! (몇 가지 테스트 데이터로 SQL Fiddle을 만들면 보너스 포인트가 생깁니다.) – halfer
처음에 상위 5 개를 얻으려면 SO에서 [mysql] [그룹당 최대 n 개] 태그를 검색하십시오. MySQL은 내장 된'TOP 5' 연산자를 가지고 있지 않으므로,이 답을 구현하기 위해 접근법을 사용할 필요가 있습니다. – Barmar