Mysql
 sql >> Database >  >> RDS >> Mysql

Ottenere la differenza tra i conteggi di due sottoquery

Puoi farlo con

SELECT some_id
  , SUM(
      CASE
        WHEN vote = 'UP'
        THEN 1
        WHEN vote = 'DOWN'
        THEN -1
        ELSE 0
      END
    ) as vote_score
FROM votes
GROUP BY some_id 

Nota che l'approccio migliore è avere +1 o -1 memorizzato nel voto, quindi puoi semplicemente fare:

SELECT some_id, SUM(vote) as vote_score
FROM votes
GROUP BY some_id

A proposito, se la mia formattazione ti sembra strana, l'ho spiegato in http://bentilly.blogspot.com/2011/02/sql-formatting-style.html .