I need fast and effective method to get three count from one table for statistic on my current personal project. And then I’ve found easy and elegant way to do so:

select count(*) Total,  
sum(case when is_approved = 't' then 1 else 0 end) PendingCount,
sum(case when is_rejected = 't' then 1 else 0 end) RejectedCount
from project_project

You could add group by statement so this code will show you counts for groups. This code I’ve tested in PostgresSQL. I’ll try to test it with Oracle DB and will write an update.

Love podcasts or audiobooks? Learn on the go with our new app.