» »

[MySql] Vsota vseh in vsota zadnjih dodanih vrednosti v podskupini

[MySql] Vsota vseh in vsota zadnjih dodanih vrednosti v podskupini

Vitamin-B ::

Rad bi dosegel nekaj takega

SELECT
	section_id,
	SUM(*)                                                           as sum_all_in_section,
	SUM(CASE WHEN entry_time=max(entry_time) THEN volume ELSE 0 END) as sum_latest_in_section
FROM values GROUP BY section_id;


Torej:

section_id	volume	entry_time
       'a'	     1	'2016-10-10-12-14-05'
       'a'	     4	'2016-10-10-12-14-05'
       'b'	     2	'2016-10-10-12-14-05'
       'c'	    30	'2016-10-10-12-14-05'
       'b'	    10	'2016-10-10-12-14-15'
       'b'	   100	'2016-10-10-12-14-15'
       'c'	     0	'2016-10-10-12-14-15'


v:

section_id	sum_all_in_section	sum_latest_in_section
       'a'	                 5			    5
       'b'	               112			  110
       'c'	                30			    0


Vem da je problem v max(entry_time) znotraj sum(...), nimam pa prave ideje kako se cim elegantneje lotiti tega problema, pri cemer naj se koda spremini le med SELECT in FROM. Dosedanje googlanje ni prineslo relevantnih zadetkov (bolj v obliki ROLL in podobno, kar ni to to za moj primer) :/

cleanac ::

max(entry_time) lahko daš v subquery ali pa ga pred samim query-em shraniš v spremenljivko in potem primerjaš spremenljivko. So pa še drugi načini.
V kolikor je to izvedljivo v MySql ne vem, ker sem bolj v MS vodah.

ales85 ::

Ok, ne me popljuvati ampak naredil sem klobaso, ki funkcionira :) Ne najdem pa načina, kako bi to rešil samo v SELECT.

select tab1.id, tab1.volume as sum_all_in_section, tab2.volume as sum_latest_in_section
from (
    select id, sum(volume) volume from test group by id
    ) tab1 inner join
(select t2.id, sum(t2.volume) as volume from test t2 where concat(id,entry_time) in ( select concat(id,max(entry_time)) from test t3 where t2.id=t3.id ) group by t2.id) tab2 on tab1.id=tab2.id


POPRAVKI DOBRODOŠLI :D

hellboy123 ::



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kako prenesti video iz spletne strani?

Oddelek: Programska oprema
112440 (1114) cabac
»

Bash skripta

Oddelek: Programiranje
243240 (2552) poweroff
»

[SQL] Unikatni izpisi

Oddelek: Programiranje
212222 (1609) 111111111111
»

MySQL pomoc

Oddelek: Izdelava spletišč
171843 (1099) slosi
»

MS Access (strani: 1 2 )

Oddelek: Programiranje
647403 (5461) travica

Več podobnih tem