【问题标题】:How to return multi-count of specific values如何返回多个特定值的计数
【发布时间】:2011-07-30 00:37:38
【问题描述】:

我有一张这样的桌子:

id|category

其中 category 是 0 到 3 之间的整数。如何计算每个类别中有多少行。是否可以在单个查询中进行?

F.x.如果我有这些行:

a|3
b|1
d|1
f|0
g|2

结果应该是:

(1,2,1,1)

即。类别中的 1 = 0,类别中的 2 = 1 等等。

【问题讨论】:

    标签: mysql count sum


    【解决方案1】:

    这将为每个类别提供一行。

    SELECT category, COUNT(*) as catcount
        FROM YourTable
        GROUP BY category
    

    要以您指定的确切格式(1 行,4 列)获得输出:

    SELECT SUM(CASE WHEN category = 0 THEN 1 ELSE 0 END) AS cat0count,
           SUM(CASE WHEN category = 1 THEN 1 ELSE 0 END) AS cat1count,
           SUM(CASE WHEN category = 2 THEN 1 ELSE 0 END) AS cat2count,
           SUM(CASE WHEN category = 3 THEN 1 ELSE 0 END) AS cat3count
        FROM YourTable
    

    【讨论】:

    • 这是一个不错的选择,就像我将用户评分与我不想选择的用户 ip 一起存储一样
    猜你喜欢
    • 2017-03-16
    • 2020-08-17
    • 2019-07-30
    • 2017-02-10
    • 1970-01-01
    • 2018-10-10
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多