SQL을 사용하여 평균, 중앙값 및 최빈값 찾기.
2655 단어 sqldatabasebeginnersdatascience
이 블로그에서는 SQL만 사용하여 이러한 값을 계산하는 방법에 대해 설명합니다.
모든 부서에 대해 부서별 평균, 중앙값 및 급여 모드를 찾기 위해 아래 표를 고려하십시오.
╔═══════╦════════╦════════╗
║ empid ║ deptid ║ salary ║
╠═══════╬════════╬════════╣
║ 1 ║ 1 ║ 12000 ║
╠═══════╬════════╬════════╣
║ 2 ║ 2 ║ 3400 ║
╠═══════╬════════╬════════╣
║ 3 ║ 3 ║ 45000 ║
╠═══════╬════════╬════════╣
║ 4 ║ 4 ║ 1320 ║
╠═══════╬════════╬════════╣
║ 5 ║ 4 ║ 5600 ║
╠═══════╬════════╬════════╣
║ 6 ║ 2 ║ 2700 ║
╠═══════╬════════╬════════╣
║ 7 ║ 1 ║ 12000 ║
╠═══════╬════════╬════════╣
║ 8 ║ 3 ║ 34000 ║
╠═══════╬════════╬════════╣
║ 9 ║ 4 ║ 4600 ║
╠═══════╬════════╬════════╣
║ 10 ║ 1 ║ 9000 ║
╠═══════╬════════╬════════╣
║ 11 ║ 1 ║ 13000 ║
╠═══════╬════════╬════════╣
║ 12 ║ 2 ║ 12000 ║
╠═══════╬════════╬════════╣
║ 13 ║ 4 ║ 1320 ║
╠═══════╬════════╬════════╣
║ 14 ║ 3 ║ 24000 ║
╠═══════╬════════╬════════╣
║ 15 ║ 3 ║ 45000 ║
╠═══════╬════════╬════════╣
║ 16 ║ 2 ║ 3400 ║
╠═══════╬════════╬════════╣
║ 17 ║ 2 ║ 1230 ║
╠═══════╬════════╬════════╣
║ 18 ║ 1 ║ 15000 ║
╚═══════╩════════╩════════╝
평균은 부서의 모든 급여의 평균일 뿐이므로 AVG 기능을 사용할 수 있으므로 찾기가 매우 쉽습니다.
SELECT deptid
,AVG(SALARY) AS mean_salary
FROM employee
GROUP BY deptid
각 부서의 급여 계산 모드는 SQL 함수가 내장되어 있지 않기 때문에 약간 까다로울 것입니다.
이에 대한 단계는 다음과 같습니다.
salary_counts AS (
SELECT deptid,
salary,
COUNT(salary) AS salary_counts
FROM employee
GROUP BY deptid, salary
)
-- ranking salaries by frequency
, mode_salaries AS (
SELECT deptid,
salary,
RANK() OVER( PARTITION BY deptid ORDER BY salary_counts DESC ) AS salary_counts_rank
FROM salary_counts
)
SELECT deptid,
salary as mode_salary
FROM mode_salaries
WHERE salary_counts_rank = 1
각 부서의 급여 중앙값을 계산할 때 GROUP과 함께 PERCENTILE_DISC SQL 함수를 사용하면 이를 계산하는 데 도움이 됩니다.
median_salaries AS (
SELECT deptid,
PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY salary) AS median_salary
FROM employee
GROUP BY deptid
)
SELECT deptid,
median_salary
FROM median_salaries
이것이 SQL에서 평균, 중앙값, 최빈값을 계산하는 방법입니다.
Reference
이 문제에 관하여(SQL을 사용하여 평균, 중앙값 및 최빈값 찾기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sumeet_bansal/finding-mean-median-and-mode-using-sql-46hc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)