【问题标题】:count column items in mysql计算mysql中的列项
【发布时间】:2015-02-13 14:35:48
【问题描述】:

我在 MySQL 数据库中有一个名为“WasCancelled”的列,它是布尔类型。

我将数字 0,1 和 2 保存到其中。

我需要一个查询来计算有多少个一、二和零。

例如: 我的专栏:

WasCanceled
-----------
    0
    0
    1
    1
    1
    2
    0
    0   
    0
    2
    0
    0
    1

我需要查询输出:

 number | times
 -------|------
  "0"   |   7
  "1"   |   4
  "2"   |   2

请帮忙。

谢谢。

戴夫。

【问题讨论】:

    标签: mysql sql select count group-by


    【解决方案1】:

    您可以通过分组来做到这一点:

    SELECT WasCancelled, COUNT(*)
    FROM <Table>
    GROUP BY WasCancelled
    

    如果您需要更多信息,请在此处查看有关Group ByCount 的详细信息。

    更新

    要在 cmets 中包含问题:要限制特殊值,您可以添加 WHERE 子句:

    SELECT WasCancelled, COUNT(*)
    FROM <Table>
    WHERE WasCancelled = "1"
    GROUP BY WasCancelled
    

    在其他问题中,请编辑您的整体问题以包含子问题或打开新主题。请阅读How To Ask Good Questions

    更新 2

    SQL 也允许HAVING 子句,这类似于WHERE,但允许比较聚合值。有关详细信息,请参阅here(例如,您想知道哪个值出现超过 5 次等)。

    【讨论】:

    • @DavidGidony 如果它解决了您的问题,请接受答案。
    • 最后一个问题,如果我只想计算“1”值?
    • 我6分钟就可以接受,别担心我会的!
    • 哈哈只是想提一下,因为很多人忘记了:) 你的第二个问题:你可以添加一个WHERE 子句。我会更新我的答案。如果您有更多问题,请为他们打开另一个主题,因为子问题应始终单独提出。
    • 你能帮我看看这个吗? stackoverflow.com/questions/27500712/…
    【解决方案2】:

    使用 GROUP BYCOUNT 功能:

    试试这个:

    SELECT WasCanceled, COUNT(1) as times 
    FROM tableA 
    GROUP BY WasCanceled;
    

    【讨论】:

      【解决方案3】:

      我认为这可能行得通!

      select
        count(WasCanceled) as CNT, WasCancelled
      from
        YourTableNameHere
      group by
        WasCanceled
      

      【讨论】:

        【解决方案4】:

        这对我有用

        SELECT WasCanceled AS number, COUNT(WasCanceled) AS times FROM tblTest GROUP BY WasCanceled
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-08
          • 2018-03-26
          • 2011-04-18
          • 1970-01-01
          • 1970-01-01
          • 2011-10-09
          • 1970-01-01
          相关资源
          最近更新 更多