몇 가지 조인 된 테이블에서 event_id, home_team 및 집계 함수의 결과를 선택하려고합니다. event_id는 자동 증가 기본 키입니다. home_team은 테이블의 모든 레코드에 고유하지 않습니다. event_id로 그룹화하여 집계 함수를 생성 한 다음 가장 큰 3 개의 값을 취하는 집계 함수의 결과로 정렬하려고합니다. 그러나 home_team이 고유해야합니다. 어떻게해야합니까? 레코드에 home_team, event_id 및 집계 함수의 결과가 있으므로 DISTINCT를 수행 할 수 없습니다. event_id는 항상 고유하므로 내 DiSTINCT 쿼리는 아무 것도하지 않습니다.GROUP BY 및 여러 열의 고유성
집계 함수가 이에 따라 달라 지므로 event_id로 그룹화해야하므로 home_team으로 그룹화 할 수 없습니다. 모두 I 그룹은 도움이되지 않을 경우 중 하나
Table 1
id: 1
event_id: 1
value: 2
id 2
event_id: 1
value: 6
id 3
event_id: 2
value: 4
id4
event_id: 2
value: 3
id5
event_id: 3
value: 1
예
... 때문에 표 2
event_id (PK, autoincremented): 1
home_team: 1
event_id: 2
home_team 2
event_id: 3
home_team: 1
SELECT *, AVG(table1.value) as average FROM table1 JOIN table2 ON table1.event_id = table2.event_id GROUP BY table2.event_id ORDER BY average DESC
내가 올바른을 생성하기 위해 table2.event_id에 의해 그룹에 필요 집계 함수 결과. 같은 EVENT_ID 등이
GROUP BY event_id, home_team
이 뜻을 그룹 레코드 만 : 그러나, 또한 그렇게 원하는 출력이 두 EVENT_ID 1 결과 EVENT_ID 2
잘 모르겠습니다. 단일 event_id의 도메인에 여러 개의 home_teams가있을 수 있습니까? 그렇다면 "선택"할 대상을 어떻게 선택합니까? –
좀 더 자세한 내용이 필요하다고 생각합니다. 설명하고자하는 것을 설명하기 위해 SQL 또는 SQL의 단순화 된 버전을 제공 할 수 있습니까? –
고마워, 내가 예를 던졌다. 다행히 그 일을 명확하게 만들 것입니다 ... 도와 주셔서 감사합니다 –