| Mysql query vprašanje... | ||
|---|---|---|
|
G-force
30. jan 2013 13:05:23
Pridružen od: 31. mar 2008 828 objav 516 60 3 |
#1
Imam primer id date name 4 26.3.2001 mojcaRad bi dobil zadnje zapise ter njihov seštevek torej da query izpiše Če zapišem SELECT id, date, name, COUNT(*) FROM xy GROUP BY id mi bo vrnilo seštevke in PRVE zapise posamezne grupe. Jaz bi pa rabil zadnje (datumsko). Kako to naredim? |
|
|
schtr4jh
30. jan 2013 13:16:06
Pridružen od: 24. nov 2008 402 objav 322 33 4 |
#2
Ko uporabljaš group by, v selectu ne smejo bit polja, ki so v posamezni skupini med zapisi drugačna. Tebi bi verjetno delovala tale rešitev: SELECT MAX(date), COUNT(*) FROM xy GROUP BY id Mimogrede, zakaj "kršiš" (ne)napisano pravilo, ki pravi, da mora bit primary key (id) unikaten? |
|
|
G-force
30. jan 2013 13:17:27
Pridružen od: 31. mar 2008 828 objav 516 60 3 |
#3
Za datum sem ugotovil, da bi lahko uporabil MAX() samo ni mi jasno, kako bi pa vključil name? SELECT id, MAX(date), name, COUNT(*) FROM xy GROUP BY id |
|
|
G-force
30. jan 2013 13:20:48
Pridružen od: 31. mar 2008 828 objav 516 60 3 |
#4
schtr4jh: malo pred mano si odgovoril. Tabela seveda ni takšna kot je zgoraj zapisano. Tko sem napisal samo, da je čim enostavneje in pregledno za iskanje rešitve. Verjetno bom potem res poskusil s MAX() za ostale podatke pa verjetno več queryjev. Optimizacija / hitrost itak ni važna, ker bom query poganjal samo na localhost in ne online. |
|
|
schtr4jh
30. jan 2013 13:26:08
Pridružen od: 24. nov 2008 402 objav 322 33 4 |
||
|
G-force
30. jan 2013 15:29:50
Pridružen od: 31. mar 2008 828 objav 516 60 3 |
#6
Ne vem. Nimam časa brati. Sem pa problem rešil tako, da sem naredil zanko in updejtal z vsemi vnosi... "ustavi" se pa pač pri zadnjem. Verjetno grozna rešitev, če bi bila stran online vendar, ker samo prestavljam ene vnose iz enega sistema v drugega in delam na localhost, povsem spremenljiva. Naenkrat je pognal 30.000+ querjiev vendar je bilo končano v par sekundah tko da fajn. Vseeno hvala. |
|
|
ledi
30. jan 2013 22:56:46
Pridružen od: 14. avg 2008 681 objav 325 223 14 |
#7
rabis embeded SQL stavke SELECT A.id, A.date, A.name, (SELECT COUNT(*) FROM xy WHERE id=A.id) cnt FROM xy A ORDER BY A.date DESC LIMIT 0,3 |
|