【问题标题】:How to use MYSQL GROUP BY SUM with multiple columns如何在多列中使用 MYSQL GROUP BY SUM
【发布时间】:2015-02-13 23:33:35
【问题描述】:

基本上,问题是如何从#hours中获取总和,按#id、#code、#semester、#year 列分组

   id, hours, code, semester, year
  165,     6,    3,        1, 2012
  166,     6,   16,        1, 2012
  460,     8,   14,        2, 2012
  461,     8,   16,        2, 2012
  462,    15,   16,        2, 2013
  463,     6,    1,        2, 2013

   id, hours, code, semester, year, sum
  165,     6,    3,        1, 2012, **6**
  166,     6,   16,        1, 2012, **6**
  460,     8,   14,        2, 2012, **8**
  461,     8,   16,        2, 2012, **23**
  462,    15,   16,        2, 2012, **23**
  463,     6,    1,        2, 2013, **6**

我在 GROUP BY、GROUP BY CONCAT 等方面尝试了很多,但没有成功。

我想按每一行中的所有这些列进行分组

【问题讨论】:

  • hours ad 一行中的时间总和没有意义。
  • 我完全看不出第一个盒子和第二个盒子的区别。
  • SO 不支持 td 标记
  • 那个编辑对我没有帮助。
  • SELECT id,hours,code,semester,year,'?' mysum FROM my_table

标签: mysql group-by group-concat


【解决方案1】:

要对列的值求和,您可以使用 MYSQL 的 SUM() 函数,您可以将其作为类似这样的字段返回,例如,此查询中的 sum 字段将为 total_hours

SELECT id,hours,code,semester,year, SUM(hours) AS total_hours
FROM table_name
GROUP BY  id,code,semester, year

【讨论】:

  • 我已经尝试过了,但我得到了 MYSQL 错误“错误代码:1241。操作数应包含 1 列。
  • @Marco 不可能从此查询中生成该错误。也许有些事情你没有告诉我们。
【解决方案2】:

试试这个:

select id, code, semester, year, sum(hours) from `table` group by id,code,semester, year

【讨论】:

  • Jens,我试过这个,但我得到了 MYSQL 错误“错误代码:1241。操作数应包含 1 列。
  • @marco 是你表的一列?
  • 是的,它是我表中的一列,如表中所述。
  • 这个答案出现在低质量审查队列中,大概是因为您没有解释代码。如果你确实解释了(在你的回答中),你更有可能获得更多的支持——提问者更有可能学到一些东西!
  • @marco 你把table改成你的表名了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-28
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多