ben tabloda zaman verileri: Category_Prob
OysaHesaplanan sütun
id Author_ID Category_ID Paper_Count Category_Prob Paper_Year Rank
---------------------------------------------------------------------------------
1 677 8 1 0.333 2005 1
2 677 11 1 0.333 2005 2
3 677 12 1 0.333 2005 3
4 677 19 1 1.0 2007 1
5 677 8 1 1.0 2009 1
6 677 11 1 1.0 2011 1
7 677 19 1 1.0 2012 1
8 677 5 2 1.0 2013 1
9 1359 1 2 0.333 2005 1
10 1359 14 2 0.333 2005 2
11 1359 11 2 0.333 2005 3
12 1359 1 7 0.5 2006 1
13 1359 17 5 0.357 2006 2
14 1359 12 2 0.142 2006 3
15 ...
16 ...
hesaplanır hesaplanmış bir sütun: Ben sorgunun bir çıkış istiyorum ise
id Author_ID Research_Area Category_ID Paper_Count Paper_Year Rank
---------------------------------------------------------------------------------
1 677 feature extraction 8 1 2005 1
2 677 image annotation 11 1 2005 2
3 677 probabilistic model 12 1 2005 3
4 677 semantic 19 1 2007 1
5 677 feature extraction 8 1 2009 1
6 677 image annotation 11 1 2011 1
7 677 semantic 19 1 2012 1
8 677 video sequence 5 2 2013 1
9 1359 adversary model 1 2 2005 1
10 1359 ensemble method 14 2 2005 2
11 1359 image represent 11 2 2005 3
12 1359 adversary model 1 7 2006 1
13 1359 concurrency control 17 5 2006 2
14 1359 information system 12 2 2006 3
15 ...
16 ...
olarak iki adımda:
Adım İlk biz Paper_Count
bir SUM
EAC içinde olması gerekir Paper_Year = 2005
ve Author_ID = 677
yani mesela h Paper_Year
, İkinci SUM(Paper_Count) = 3
Adım, daha sonra her Category_ID
için, biz
1/3
yani
0.333
ve olacağını
Paper_Year
içinde
SUM(Paper_Count)
değeri ile
Paper_Count
bölmek zorunda
SELECT
Author_ID, Abstract_Category, Paper_Count,
[Category_Prob] = Paper_Count/SUM(Paper_Count),
Paper_Year, Rank
FROM
Author_Areas
GROUP BY
Author_ID, Abstract_Category, Paper_Year, Paper_Count, Rank
ORDER BY
Author_ID, Paper_Year
Ama döndürür:
Üstelik ben bu sorguyu denedi Tablodaki tüm satırlar için Category_Prob
sütununda yalnızca 1
.
yardım edin!
@ Giorgos - Sorgu başarılı bir şekilde yürütüldü, ancak hesaplanan değerler_column'daki değerler istenen gibi değil – maliks
@Bridge Bence değil. 'SUM' ile' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'SQL Server 2005'ten itibaren mevcuttur (% 100 emin olmasa bile) Sql Server 2012, "toplam" deyiminde "ORDER BY" ifadesini ekleyerek, toplamları hesaplamak için ekledi. –
@GiorgosBetsos Haklısınız, benim hatam – Bridge