2017-06-01 91 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 

現在我想再多列一欄,應該顯示一年級學生的人數。這意味着2010年4名學生應該來。這個怎麼做?

回答

1

這是你在找什麼?

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

使用帶有GROUP BYSUM聚合函數的Year

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

上面的結果我通過加入多個列來獲得。不是從一張表格中輸入 –

+2

原始問題中沒有足夠的信息用於除通用答案以外的任何其他信息。這兩個呈現的答案都可以工作,但是如果不知道您的實際查詢以瞭解哪些列表正在使用,我們就無法提供與您想要實現的查詢完全匹配的查詢。發佈產生結果的實際查詢總是一個好主意! –

+0

@Dave,我們可以在沒有看到它的情況下包裝他的查詢,不是嗎? 'SELECT * FROM(/ * hisqueryhere * /)AS T'。當然,提供可能會有所幫助,並且在某些情況下(*雖然不是這個*)是必要的。 – KtX2SkD