MySQL – Getting the percentage of an occurrence

The question:

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.


The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

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

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 Comment