Jump to content

MySQL SUM n lielākās vērtības


aywars
 Share

Recommended Posts

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 - aywars
Link to comment
Share on other sites

(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 - aikoN
Link to comment
Share on other sites

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 kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...