Home > Database > Mysql Tutorial > How Can I Calculate Grade Percentages in SQL Without Predefining All Possible Grades?

How Can I Calculate Grade Percentages in SQL Without Predefining All Possible Grades?

DDD
Release: 2025-01-17 04:06:10
Original
172 people have browsed it

How Can I Calculate Grade Percentages in SQL Without Predefining All Possible Grades?

Calculating Percentage in a SQL Statement

Question:

A SQL Server table contains user names and their grades. How can a single SQL statement calculate the percentages of all possible grade values (e.g., A, B, C)? Additionally, is it possible to achieve this without explicitly defining all possible grades, considering that users may enter open-ended responses such as 'pass/fail' or 'none'?

Answer:

Option 1: Using over()

select Grade, count(*) * 100.0 / sum(count(*)) over()
from MyTable
group by Grade
Copy after login

This solution is the most efficient and utilizes the over() function.

Option 2: Universal (Any SQL Version)

select Grade, count(*) * 100.0 / (select count(*) from MyTable)
from MyTable
group by Grade;
Copy after login

This option works for any SQL version but may be less efficient than the previous one.

Option 3: With CTE (Least Efficient)

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;
Copy after login

While this method provides a flexible solution, it is the least efficient.

The above is the detailed content of How Can I Calculate Grade Percentages in SQL Without Predefining All Possible Grades?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template