【问题标题】:How to merge rows from one table to another row in another table如何将一个表中的行合并到另一个表中的另一行
【发布时间】:2012-11-22 14:37:05
【问题描述】:

我想将一个表中的行合并到另一个表中的另一行

与“姓名”相关的“金额”的值总是大于10,但分成几部分

如果“金额”列的值小于10 收集所有小于 10 汇集“描述”列的值 哪里有同名

我的目标是在新表中不存在低于 10 的行“金额”

又名

我想要这个表格 - 'table'

id(1) 名称(Name1) 描述(Description1) 金额(5.50)

id(2) 名称(Name1) 描述(Description2) 金额(5.50)

id(3) 名称(Name2) 描述(Description1) 金额(3.50)

id(4) 名称(Name2) 描述(Description1) 金额(3.50)

id(5) 名称(Name2) 描述(Description2) 金额(3.50)

id(6) 名称(Name3) 描述(Description3) 金额(10.00)

在一个新表中加入这个 - 'newtable'

Newid(1) 名称(Name1) 描述(Description1,Descripton2) 金额(11.00)

Newid(2) 名称(Name2) 描述(Description1,Description1,Descripton2) 金额(10.50)

Newid(3) 名称(Name3) 描述(Description3) 金额(10.00)

有什么想法吗?

【问题讨论】:

  • 这听起来有点像一个视图作业。

标签: mysql sql


【解决方案1】:

您可以为此使用group bygroup_concatsum

这是一个小示例:

SELECT
`name`,
group_concat(`description`) as `description`,
sum(`amount`) as `amount` 
FROM `table_name`
GROUP BY `name`

顺便说一句,我忘了问:What have you tried?

【讨论】:

    【解决方案2】:

    可能是这样的:

    select into newtable(name,newdesc,amt)
    SELECT name,
            GROUP_CONCAT(DISTINCT description
                      ORDER BY id DESC SEPARATOR ' '), sum(amount)
         FROM table
         GROUP BY name;
    

    【讨论】:

      猜你喜欢
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2020-04-22
      相关资源
      最近更新 更多