dongye9453 2010-09-17 19:26
浏览 358
已采纳

MySQL数量和总数

I have a table with a number of votes recorded in it, each vote goes against a post. What I want to be able to do is count the total occurances of each vote.

Table looks like this:

    vote
    -----
    1
    2
    3
    1
    2
    3
    4
    5
    2
    2
    2
    2
    ...and so on...

How can I count the records, e.g. In that list 1x2, 2x6, 3x2, 4x1 and 5x1 times.

  • 写回答

4条回答 默认 最新

  • dsd30433 2010-09-17 19:28
    关注

    To get what you want you can use GROUP BY and COUNT:

    SELECT vote, COUNT(*) AS cnt
    FROM votes
    GROUP BY vote
    

    Result:

    vote  cnt
    1     2  
    2     6  
    3     2  
    4     1  
    5     1  
    

    Votes that have zero count will not be represented in this result set. If you want to have these included with a count of zero then you will need to use an OUTER JOIN with a table listing all the possible votes.

    SELECT
        possible_votes.vote,
        COUNT(votes.vote) AS cnt
    FROM possible_votes
    LEFT JOIN votes ON possible_votes.vote = votes.vote
    GROUP BY possible_votes.vote
    

    Result:

    vote  cnt
    1     2  
    2     6  
    3     2  
    4     1  
    5     1  
    6     0
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向