Sql 使用select query选择在每个组下方添加总和
样本表:Sql 使用select query选择在每个组下方添加总和,sql,Sql,样本表: INSERT INTO Table1 ([ID], [Name]) VALUES ('1', 'Alpha'), ('2', 'Beta'), ('3', 'Beta'), ('4', 'Beta'), ('5', 'Charlie'), ('6', 'Charlie') 使用select查询,我想在每个组下面添加一行,每个名称的id之和为。我已经尝试使用union,但我需要对每个名称执行select查询。但名字随时都可能改变
INSERT INTO Table1
([ID], [Name])
VALUES
('1', 'Alpha'),
('2', 'Beta'),
('3', 'Beta'),
('4', 'Beta'),
('5', 'Charlie'),
('6', 'Charlie')
使用select查询,我想在每个组下面添加一行,每个名称的id之和为。我已经尝试使用union,但我需要对每个名称执行select查询。但名字随时都可能改变
选择查询结果:
ID Name
1 Alpha
1
2 Beta
3 Beta
4 Beta
9
5 Charlie
6 Charlie
11
您可以通过具有计算列的联合来实现这一点,以跟踪联合两侧的源名称:
SELECT ID, Name
FROM
(
SELECT ID, Name AS position, Name FROM Table1
UNION ALL
SELECT SUM(ID), Name, NULL
FROM Table1
GROUP BY Name
) t
ORDER BY
position, ID;
尝试添加Id字段和按名称分组。我的意思是使用select查询而不是在表中插入对不起。就数据库管理而言,这里有一些问题。首先,您永远不会希望以这种方式在数据库中存储数据,因为您正在收集数据。如果您只是想获取数据,那么最好创建一个查询来聚合数据,然后在您使用的任何视图中管理显示。你能再解释一下你想要达到的目标吗?很抱歉我没能解释清楚。正如您所说,我希望它是一个查询的结果,而不是在存储数据时。我只是将insert作为示例表包含在内。
SELECT SUM(Id), Name from Table1 GROUP BY name