计算已在SQL中分组的行的总和

时间:2015-06-18 15:05:50

标签: sql sql-server

我有查询:

SELECT substring(Code,1,6) as Code
From Table
Group by substring(Code,1,6)
Order By Code

但是,我正在尝试添加一列,该列是已在此查询中分组的行的计算总和。例如:

Code    Number

S05080A 20

S05080B 20

S70331A 8

S70331B 4

然后会变成:

Code    Sum

S05080  40

S70331  12

希望有人可以帮我解决这个问题,非常感谢!

5 个答案:

答案 0 :(得分:3)

Foo

答案 1 :(得分:1)

您已经完成了艰苦的工作 - 只需将 private Button button; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button1); image = (ImageView)findViewById(R.id.imageView1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ColorMatrix matrix = new ColorMatrix(); matrix.setSaturation(0); ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix); image.setColorFilter(filter); } }); 添加为另一列并将其别名

SUM(Number)

答案 2 :(得分:1)

您可以使用SUM,如下所示:

SELECT substring(Code,1,6) as Code, SUM(Number) as Sum
From Table
Group by substring(Code,1,6)
Order By Code

答案 3 :(得分:1)

您可以使用:

CREATE TABLE #codes(code nvarchar(10), number int)

INSERT INTO #codes(code, number)
VALUES(N'S05080A', 20), (N'S05080B', 20), (N'S70331A', 8), (N'S70331B', 4)

-- This is your part
SELECT LEFT(code,6) as code,SUM(number)
FROM #codes
GROUP BY LEFT(code,6)

DROP TABLE #codes

答案 4 :(得分:0)

declare @t table (Code varchar(10),number int)
insert into @t(code,number)values  ('S05080A',20), ('S05080B',20), ('S70331A',8),('S70331B', 4)

SELECT  SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1)),SUM(number)
From @t
Group by SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1))
Order By SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1))