왜 이 두 SQL 쿼리에서 다른 결과를 얻습니까?평균값과 오버()를 단독으로 사용할 때의 평균값

질문:

사용AVG():
SELECT
    c.id,
    c.name,
    m.season,
    m.home_goal,
    m.away_goal,
    AVG(m.home_goal + m.away_goal) AS overall_avg
FROM 
    country AS c
LEFT JOIN 
    match AS m ON c.id = m.country_id
WHERE 
    name = 'Belgium'
GROUP BY 
    c.id, m.season, m.home_goal, m.away_goal
 
사용OVER():
SELECT
    c.id,
    c.name,
    m.season,
    m.home_goal,
    m.away_goal,
    AVG(m.home_goal + m.away_goal) OVER() AS overall_avg
FROM 
    country AS c
LEFT JOIN 
    match AS m ON c.id = m.country_id 
평균열에 대해 나는 다른 결과를 얻었다.나는 무슨 차이가 있는지 모르겠다.

답안

첫 번째 GROUP BY 조회에서 AVG(m.home_goal + m.away_goal)는 집합 함수로 각 그룹의 평균 값을 되돌려줍니다.두 번째 비GROUP BY 검색에서 AVG(m.home_goal + m.away_goal) OVER()는 창 함수로 전체 테이블의 평균값을 되돌려줍니다.