【问题标题】:mysql - get ids of summed rowsmysql - 获取汇总行的ID
【发布时间】:2013-06-04 23:51:29
【问题描述】:

我需要获取求和的每一行的 ID。我看到已经有 Sql Server 的答案,但我需要在 MYSQL 中执行此操作。非常感谢任何帮助!

简单来说,我有下表quote_items:

id  finishing_sf  finish_id
1   10            1
2   20            2
3   30            1
4   40            2

我想计算按finish_id 分组的所有finishing_sf 的总和,但还要得到另一列,其中包含此总和中包含的ID 列表。如下:

finish_id  sum   item_ids
1          40    1,3
2          60    2,4

查询类似于:

SELECT SUM(`finishing_sf`) /* (list of IDs) */
FROM `quote_items`
GROUP BY `finish_id`

这是解释如何使用特定于 Sql-Server 的语法的线程。 Sql Server - Get Ids of summed rows

谢谢!

【问题讨论】:

    标签: mysql group-by


    【解决方案1】:

    您似乎正在这里寻找GROUP_CONCAT

        SELECT `finish_id`,
               SUM(`finishing_sf`)   AS `sum`,
               GROUP_CONCAT(`id`)    AS `item_ids` 
          FROM `quote_items`
      GROUP BY `finish_id`
    

    SQL Fiddle

    【讨论】:

    • 不应该是GROUP_CONCAT(id)吗?
    • 完美!感谢您的帮助!
    【解决方案2】:

    你需要GROUP_CONCAT

    此函数返回一个字符串结果,其中包含来自组的串联非 NULL 值。如果没有非 NULL 值,则返回 NULL。

    Here's how我曾经做过类似的事情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多