SQL 동적 백분율 계산: 효율적이고 포괄적입니다.
질문:
사용자 이름과 성적이 포함된 SQL 테이블이 있으면 가능한 각 성적의 발생 비율을 계산해야 합니다. 문제는 이를 동적으로 구현하여 열린 텍스트 필드에서 응답성을 허용하는 것입니다.
해결책:
SQL 문을 사용하여 백분율을 계산하는 세 가지 주요 방법은 다음과 같습니다.
방법 1: 효율성 최적화
<code class="language-sql">select Grade, count(*) * 100.0 / sum(count(*)) over() from MyTable group by Grade</code>
이 방법은 "over()" 함수를 사용하여 전체 데이터 세트를 기준으로 백분율을 계산하는 가장 효율적인 방법입니다.
방법 2: 보편적 적용성
<code class="language-sql">select Grade, count(*) * 100.0 / (select count(*) from MyTable) from MyTable group by Grade;</code>
이 방법은 "over()" 기능 지원 여부에 관계없이 모든 SQL 버전에서 작동합니다. 테이블의 총 행 수를 기준으로 백분율을 계산합니다.
방법 3: 공통 테이블 표현식(CTE)
<code class="language-sql">with t(Grade, GradeCount) as ( select Grade, count(*) from MyTable group by Grade ) select Grade, GradeCount * 100.0/(select sum(GradeCount) from t) from t;</code>
이 방법은 이전 두 방법보다 효율성이 떨어지지만 더 복잡한 계산에서는 더 유용할 수 있습니다. CTE를 활용하여 성적 수와 백분율을 독립적으로 계산합니다.
위 내용은 SQL에서 성적 백분율을 어떻게 동적으로 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!