2017-06-01 6 views
0

私はこの結果を返すSQLクエリを持っています。sql 2014グループ

StudCount GPA Cale_  Year 
1   2.0 - 2.49  2010 
1   2.5 - 2.99  2014 
1   3.0 - 3.49  2003 
1   3.0 - 3.49  2010 
1   3.0 - 3.49  2013 
1   3.5 - 3.99  2006 
2   4.5 - 5.00  2010 

今年度の学生数を1桁増やす必要があります。つまり、2010年には4人の生徒が来るはずです。これを行う方法?

答えて

1

GROUP BYSUM集計関数を使用しますか?

drop table if exists dbo.Students; 

create table dbo.Students (
StudCount int 
, GPACale_ varchar(100) 
, Year int 
); 


insert into dbo.Students (StudCount, GPACale_, Year) 
values (1, '2.0 - 2.49', 2010) 
, (1, '2.5 - 2.99', 2014) 
, (1, '3.0 - 3.49', 2003) 
, (1, '3.0 - 3.49', 2010) 
, (1, '3.0 - 3.49', 2013) 
, (1, '3.5 - 3.99', 2006) 
, (2, '4.5 - 5.00', 2010) 


select 
* 
, sum(s.StudCount) over (partition by s.Year order by s.Year) as Sum 
from dbo.Students s 
0

が、これはあなたが探しているものですYear

SELECT Year, SUM(StudCount) 
FROM [YourTable] 
GROUP BY Year 
+0

上記の結果私は複数の列を結合しています。 1つのテーブルからではありません –

+2

一般的な回答以外のものについては、オリジナルの質問に十分な情報がありません。提示された両方の答えはうまくいきますが、実際のクエリを知らなくても、どの列/表が有効かを理解することはできません。結果を生成する実際のクエリを投稿することは、常に良いアイデアです! –

+0

@Dave、私たちはちょうどそれを見ずに、彼のクエリをラップすることができますか? 'SELECT * FROM(/ * hisqueryhere * /)AS T'です。与えられると、提供は助けになることもあれば、必要である場合もあります。 – KtX2SkD