sql >> Databáze >  >> RDS >> Mysql

Získání rozdílu mezi počty dvou poddotazů

Můžete to udělat pomocí

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 

Všimněte si, že lepší přístup je mít +1 nebo -1 uloženo v hlasování, pak můžete jednoduše udělat:

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

BTW, pokud vám mé formátování připadá divné, vysvětlil jsem to v http://bentilly.blogspot.com/2011/02/sql-formatting-style.html .



  1. Zlepšení rychlosti dotazů:jednoduchý SELECT ve velké postgresové tabulce

  2. Propojení MySql s Androidem bez použití PHP

  3. Jak získat aktuální datum v SQLite

  4. Uložená procedura volání SQL pro každý řádek bez použití kurzoru