aywars Ierakstīts Marts 1, 2016 Share Ierakstīts Marts 1, 2016 (labots) Sveiki! Ir tabula, kura satur dažādu grupu punktus (p1, p2 utt) un spēlētāja id (pid). Uzdevums ir aprēķināt katra spēlētāja kopējos punktus katrā grupā. Iepriekš es to darīju tā: SELECT *, SUM(p1) as p1, SUM(p2) as p2, SUM(p3) as p3, SUM(p4) as p4, SUM(p6) as p6, SUM(p13) as p13, SUM(p14) as p14, SUM(p15) as p15, SUM(p16) as p16, SUM(p17) as p17, SUM(p18) as p18, SUM(p19) as p19, SUM(p20) as p20, SUM(p21) as p21 FROM results GROUP BY pid Taču tagad parādījās prasība aprēķināt tikai labākos 5 rezultātus katrā grupā. Ideālā gadījumā - lai paliek kā iepriekš - ka p1, p2 utt summu var uzlikt kā alias. Vai kādam ko līdzīgu ir nācies taisīt? Vai varat palīdzēt ar SQL query? Paldies! Labots Marts 1, 2016 - aywars Link to comment Share on other sites More sharing options...
ju Marts 1, 2016 Share Marts 1, 2016 http://www.w3schools.com/sql/sql_top.asp Link to comment Share on other sites More sharing options...
aikoN Marts 1, 2016 Share Marts 1, 2016 (labots) Piemērs 5 labākie rezultāti p1 grupā: select * from ( select @row_number:=CASE WHEN @pid = pid THEN @row_number + 1 ELSE 1 END as num, @pid:=pid as pid, p1 from results,(select @row_number:=0, @pid:=0) as t order by pid,p1 desc ) x where num < 6 Labots Marts 1, 2016 - aikoN Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!