Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将多个具有某种标识的行合并到一个新行,该行具有不同于它们的列的总和_Sql_Sql Server - Fatal编程技术网

Sql 将多个具有某种标识的行合并到一个新行,该行具有不同于它们的列的总和

Sql 将多个具有某种标识的行合并到一个新行,该行具有不同于它们的列的总和,sql,sql-server,Sql,Sql Server,我有这样的桌子: id name qt ---------------- 0 mm 4 1 mm 5 2 xx 8 我希望更新它或获取新表,以生成此类结果: id name qt ------------------ 0 mm 9 (sum of the two or multiple some identical ) 1 xx 8 包含id列将导致GROUP BY失败

我有这样的桌子:

id    name    qt
----------------
 0      mm     4
 1      mm     5
 2      xx     8
我希望更新它或获取新表,以生成此类结果:

id   name     qt
------------------
 0     mm      9 (sum of the two or multiple some identical )
 1     xx      8
包含id列将导致GROUP BY失败,因为正在对具有不同id的多条记录进行求和


我假设id字段实际上没有任何意义,因为记录xx的id实际上在两种视觉效果之间发生变化。这就是为什么我要按行数设置它,所以它会为不同的名称递增。如果不是这样,请删除行数表达式并将id添加到GROUPBY子句。这意味着名称字段中的记录可能会根据不同名称的数量而变化

如果您真的需要和id列,您可以创建一个类似于


在某些情况下,这可能对您不起作用,但由于样本数据有限,很难判断。

您是否尝试过任何操作?id列在结果集中没有意义,因为有多个id记录被求和。请撤消上次编辑。将您的问题以图像的形式发布是一种糟糕的格式,容易导致链接损坏。以文本的形式发布可以更轻松地回答我的表格不仅有这两列,还有其他与名称相同的内容。您需要提供您所拥有和需要的详细信息。你提供的信息是不完整的。那么其他与mm名称相同的列呢?我怎么能把表格中的所有列都带来呢?我不明白你在问什么
    SELECT name, SUM(qt) as qt_sum
    FROM table GROUP BY name

SELECT ROW_NUMBER() OVER (ORDER BY name) AS id
, name
, SUM(qt) AS qt
FROM YourTableName
GROUP BY name
ORDER BY name
create table Test (id int, name varchar(10), qt int)

insert into Test values (0, 'mm', 4)
insert into Test values (1, 'mm', 5)
insert into Test values (2, 'xx', 8)

select 
     row_number() over (order by name) - 1
   , name
   , sum(qt) as qt
from Test
group by name