How to condense 3 COUNT queries into 1?

Greetings,

I have a feedback rating system with the following code:


$sql = mysql_fetch_array(mysql_query("SELECT COUNT(*) as num FROM feedback WHERE receiver = '$seller' AND rating > 0"));
$totalcount = $sql['num'];
$sql = mysql_fetch_array(mysql_query("SELECT COUNT(*) as num FROM feedback WHERE receiver = '$seller' AND rating = '1'"));
$positivecount = $sql['num'];
$sql = mysql_fetch_array(mysql_query("SELECT COUNT(*) as num FROM feedback WHERE receiver = '$seller' AND rating = '2'"));
$negativecount = $sql['num'];

Basically I need all three values to come up with a percentage. I was wondering if there is a simple way to condense this into 1 query to save MySQL resources. I am trying to learn about ways to become more efficient and use less queries.

Thanks

SELECT COUNT(CASE WHEN  rating > 0
                  THEN 'curly' END) AS pos
     , COUNT(CASE WHEN  rating = 1
                  THEN 'larry' END) AS one
     , COUNT(CASE WHEN  rating = 2
                  THEN 'moe' END) AS two
  FROM feedback 
 WHERE receiver = '$seller' 

:slight_smile:

Thanks a lot, this works great! I should be able to cut back a lot of queries with this.

Kind regards