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.
Thanks.
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.
So:
SELECT SUM(resolution='Cancelled')*100/count(*)
FROM table
ref: fiddle
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0