-8

次のような SQL テーブルがあります。

id  cid     u_id  vote  user_ip     date_added 
--------------------------------------------------------------
67  188     13      0   127.0.0.1   1356686070
68  188     15      1   127.0.0.1   1356686765
69  291     13      1   127.0.0.1   1356688859
70  62      15      1   127.0.0.1   1356695284
71  370     23      1   127.0.0.1   1356892215
73  232     23      1   127.0.0.1   1356893261
74  152     23      1   127.0.0.1   1356893591
76  75      15      1   127.0.0.1   1356924002
77  201     15      1   127.0.0.1   1356927284

vote列の0は反対票を表し、賛成票を1表します。それぞれの反対票と賛成票を計算するにはどうすればよいcidですか?

結果は次のようになります。

cid   upvotes  downvotes
188   1        1
291   1        0
291   1        0
4

1 に答える 1

4
SELECT cid,
  SUM(vote) AS upvoted,
  SUM(CASE
        WHEN vote = 0
        THEN 1
        ELSE 0
      END) AS downvoted
FROM yourtablename
GROUP BY cid;
于 2012-12-31T14:07:21.190 に答える