Bạn có thể làm điều đó với
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
Lưu ý rằng cách tiếp cận tốt hơn là lưu trữ +1 hoặc -1 trong phiếu bầu, sau đó bạn có thể thực hiện:
SELECT some_id, SUM(vote) as vote_score
FROM votes
GROUP BY some_id
BTW nếu định dạng của tôi trông kỳ lạ đối với bạn, tôi đã giải thích điều đó trong http://bentilly.blogspot.com/2011/02/sql-formatting-style.html .