Forum » Programiranje » [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
Torej:
v:
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) :/
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) :/
- spremenil: Vitamin-B ()
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.
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.
POPRAVKI DOBRODOŠLI :D
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
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kako prenesti video iz spletne strani?Oddelek: Programska oprema | 2440 (1114) | cabac |
» | Bash skriptaOddelek: Programiranje | 3240 (2552) | poweroff |
» | [SQL] Unikatni izpisiOddelek: Programiranje | 2222 (1609) | 111111111111 |
» | MySQL pomocOddelek: Izdelava spletišč | 1843 (1099) | slosi |
» | MS Access (strani: 1 2 )Oddelek: Programiranje | 7403 (5461) | travica |