sql >> Databasteknik >  >> RDS >> Mysql

Får skillnad mellan antalet två underfrågor

Du kan göra det med

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 

Observera att det bättre tillvägagångssättet är att ha +1 eller -1 lagrad i omröstningen, då kan du bara göra:

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

BTW om min formatering ser konstig ut för dig, förklarade jag det i http://bentilly.blogspot.com/2011/02/sql-formatting-style.html .



  1. Hur vet jag om min PostgreSQL-säkerhetskopia är bra?

  2. Den angivna nyckeln var för lång; max nyckellängd är 1000 byte

  3. PostgreSql 'PDOException' med meddelandet 'kunde inte hitta drivrutinen'

  4. MySQL localhost / 127.0.0.1 problem