首页 > 解决方案 > SQL Server:将具有相似列值的行分组为一行,然后将相应的行相加

问题描述

我正在编写一个查询,以将具有相同起始字母的列分组为一列,下一列及其各自行值的总和。示例如下。尝试过 case 和 sum 但不起作用。这可能吗。

Col1  |Col2  |Col3
------+------+------
axxx  |1     |z
axyx  |2     |p
bxxy  |1     |q
bxyx  |2     |y
cxxy  |1     |t
cxyx  |2     |t

查询应返回如下

FirstLetter |Total(Sum of Col2)
------------+------------------
a           |3
b           |3
c           |3

其中第一列是以相同的第一个字母开头的字符串第二列给出了 col2 中所有值的总和,其中 Col1 值以相同的第一个字母开头

这可能吗?

标签: sqlsql-server

解决方案


SQL 已经有一段left时间了。

select left(Col1, 1), sum(Col2)
  from Table_Name
 group by left(Col1, 1)

推荐阅读