【问题标题】:MySql sum queryMySql求和查询
【发布时间】:2011-05-11 21:13:03
【问题描述】:

我需要一个 MySql 查询来执行以下操作: 选择表中的所有项目,按类型分组,按计数类型排序,并对所有计数求和。

这是我到目前为止所做的:

select type, count(*) as cnt from $tbl_name group by type order by count(*) desc;

这只给我每个组的计数。我应该添加什么,以便此代码显示总计数(每个组的计数总和)。

【问题讨论】:

    标签: mysql


    【解决方案1】:
    select * from (
    select type as type, 
    count(*) as cnt 
    from $tbl_name 
    group by type WITH ROLLUP) as inner_table
    order by cnt desc;
    

    请注意,第一行将是汇总的总和。

    ROLLUP reference

    【讨论】:

    • 我如何获取值?
    • 抱歉,我编辑了选择,因为它抛出了“错误使用 ROLLUP 和 ORDER BY”。您在访问它时遇到什么问题?
    • 此查询返回:解析错误:语法错误,意外的 T_VARIABLE
    • @Cristy,此查询中没有 T_VARIABLE。我只是在我的 MySQL 数据库中运行它(替换了表名和列名),就可以了。
    • 对不起,它工作正常,但我仍然不知道如何从中获得总和。你能解释一下吗?我的意思是,我通过获取结果并访问 $row['cnt'] 来获得 cnt ,但是我如何获得总和? (inner_table)
    【解决方案2】:

    试试这个:

    select type, SUM(count(*)) as cnt from $tbl_name group by type order by count(*) desc;

    【讨论】:

    • 我需要有我之前做过的 cnt 以及一个显示总共有多少项目的变量。
    • 如果您将查询提取到loop,您可以在那里进行。
    • 我不做,我只取前6行。
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2011-12-02
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多