如何将一个表中的行合并到另一个表中的另一行

Posted

技术标签:

【中文标题】如何将一个表中的行合并到另一个表中的另一行【英文标题】: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)

有什么想法吗?

【问题讨论】:

这听起来有点像一个视图作业。 【参考方案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;

【讨论】:

以上是关于如何将一个表中的行合并到另一个表中的另一行的主要内容,如果未能解决你的问题,请参考以下文章

在excel中如何将第一个工作表中的数据求和汇总到另一个表中

ADO.NET: 如何将一个DataTable中的行批量复制到另一个表中?

如何从MS SQL Server 2012中的不同表中减去连续的行?

将一个 pandas DataFrame 的副本合并到另一个 DataFrame 的每一行中?

MySQL中如何把一个数据库中的表数据,导到另一个数据库的表中

如何将单击/选定的行数据从一个表传递到并排放置的另一个表