我正在编写一个查询,以将具有相同起始字母的列分组为一个列,然后将下一个列及其相应的行值之和分组。示例如下。尝试了大小写和总和,但不起作用。这可能吗。
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值以相同的第一个字母开头
这可能吗?
答案 0 :(得分:5)
SQL已有left
函数已有一段时间了。
select left(Col1, 1), sum(Col2)
from Table_Name
group by left(Col1, 1)
答案 1 :(得分:1)
通过使用子字符串https://www.w3schools.com/sql/func_sqlserver_substring.asp
create table #1 (col1 varchar(10), col3 varchar(10))
insert into #1 values ('axxx','1'),('axyz','2')
SELECT substring(col1, 1, 1) AS col1_substring, sum(col3) AS col2count
FROM #1
GROUP BY substring(col1, 1, 1);