MySQL – Getting the percentage of an occurrence

All we need is an easy explanation of the problem, so here it is.

I’ll do my best to explain what I’m trying to accomplish.

I have a table called "Actions" and in Actions I have a column called "Resolution". In resolution some the entries, as an example, are "Fail", "Pending", "Completed" and "Cancelled".

I am trying to write a query that will tell me what percentage of the entries are "Cancelled". I hope I’ve explained myself. I am fairly new to SQL so please bear with me.


How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

To get the percentage you need to divide the sum of the value, with the total and multiply by 100 to get a percentage.

resolution='Cancelled' is an expression returning 0 for false, or 1 for true.


SELECT SUM(resolution='Cancelled')*100/count(*)
FROM table

ref: fiddle

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply