代码之家  ›  专栏  ›  技术社区  ›  CLiown

MySQL计数和总数

  •  1
  • CLiown  · 技术社区  · 14 年前

    我有一张表格,上面记录了一些选票,每张选票都是反对一个职位的。我想做的是计算每一次投票的总次数。

    表如下:

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

    如何计算记录,例如,在该列表中,1x2、2x6、3x2、4x1和5x1次。

    4 回复  |  直到 14 年前
        1
  •  2
  •   Mark Byers    14 年前

    要获取所需内容,可以使用Group By和Count:

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

    结果:

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

    计数为零的投票将不在此结果集中表示。如果您希望将这些包含在计数为零的情况下,那么您将需要使用一个外部联接和一个列出所有可能投票的表。

    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
    

    结果:

    vote  cnt
    1     2  
    2     6  
    3     2  
    4     1  
    5     1  
    6     0
    
        2
  •  3
  •   Don Dickinson    14 年前
    select vote, count(votes) as vt
    from t_your_table
    group by vote
    
        3
  •  1
  •   Jase    14 年前

    查看mysql手册中的group by combined with count。

        4
  •  0
  •   gen_Eric    14 年前
    SELECT vote, COUNT(*) as total
    FROM votes
    GROUP BY vote