Forum » Programiranje » [mySQL] razvrščanje v primeru enakih vrednosti
[mySQL] razvrščanje v primeru enakih vrednosti
crystal ::
Če imam tabelo
ID | ime | value | pozicija
1 | x | 200 |
2 | y | 150 |
3 | z | 150 |
4 | i | 140 |
pa želim dopolniti pozicija stolped
kako bi moral razvrščati in vpisovati da bi v stolpcu pozicija bile vrednosti( po vrsti) 1, 2, 2, 4
sepravi števec se ne sme povečati ob enaki prejšnji vrednosti hkrati pa se mora (4)?
ID | ime | value | pozicija
1 | x | 200 |
2 | y | 150 |
3 | z | 150 |
4 | i | 140 |
pa želim dopolniti pozicija stolped
kako bi moral razvrščati in vpisovati da bi v stolpcu pozicija bile vrednosti( po vrsti) 1, 2, 2, 4
sepravi števec se ne sme povečati ob enaki prejšnji vrednosti hkrati pa se mora (4)?
- spremenil: crystal ()
crystal ::
ubistvu sprašujem če sa da v sql
zaenkrat sem rešu v php da preveri če je že v array taka vrednost
zaenkrat sem rešu v php da preveri če je že v array taka vrednost
WarpedGone ::
Samo z enim UPDATE stavkom je tole čista heba.
Če sta lahko 2, pa najprej pozicijo nastavi na števec (1,2,3,4):
Potem pa vse zapise z istim value nastavi na minimalni števec pri tem value:
Če sta lahko 2, pa najprej pozicijo nastavi na števec (1,2,3,4):
UPDATE tabela t SET POZICIJA = ROWNUM;
Potem pa vse zapise z istim value nastavi na minimalni števec pri tem value:
UPDATE tabela t SET POZICIJA = (SELECT MIN (POZICIJA) FROM TABELA WHERE value = t.value)
Zbogom in hvala za vse ribe
MrBrdo ::
Kr cool rešitev Pomoje edina performančno boljša bi bila z cursorji in stored proceduro... http://www.mysqltutorial.org/sql-cursor...
MrBrdo
crystal ::
kaj pa če bi razvrščač takole
SELECT * FROM `xx` ORDER BY `xx`.`pozicija`,`stmest` DESC ne razporedi prav
____________________
id | zrksid _______| pozicija | stmest |
18 | SIM92LESZI10 | 1______| 1 |
25 | SIM96GREJU10 | 1______| 1 |
19 | SIM96GREJU10 | 2_______| 1 |
SIM96GREJU10 tale je na drugem mestu(pozicija) namesto na prvem
zato ker ima spodaj tudi drugo mesto oni drugi ga pa nima
recimo če bi grupiral po zrksid bi bil SIM96GREJU10 na drugem mestu in ne na prvem
primer pravilne razvrstitve
3x prvi 2x drugi
3x. prvi 1x drugi
3x prvi
5x drugi 2x tretji
5x drgui 1x cetrti
etc
SELECT * FROM `xx` ORDER BY `xx`.`pozicija`,`stmest` DESC ne razporedi prav
____________________
id | zrksid _______| pozicija | stmest |
18 | SIM92LESZI10 | 1______| 1 |
25 | SIM96GREJU10 | 1______| 1 |
19 | SIM96GREJU10 | 2_______| 1 |
SIM96GREJU10 tale je na drugem mestu(pozicija) namesto na prvem
zato ker ima spodaj tudi drugo mesto oni drugi ga pa nima
recimo če bi grupiral po zrksid bi bil SIM96GREJU10 na drugem mestu in ne na prvem
primer pravilne razvrstitve
3x prvi 2x drugi
3x. prvi 1x drugi
3x prvi
5x drugi 2x tretji
5x drgui 1x cetrti
etc
Zgodovina sprememb…
- spremenil: crystal ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PL SQL problemOddelek: Programiranje | 928 (497) | killa bee |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8402 (5081) | BivšiUser2 |
» | Oracle PL/SQL pomočOddelek: Programiranje | 1602 (1041) | MrStein |
» | SQL stavek?Oddelek: Programiranje | 994 (899) | milc |
» | [C++] Podatkovne Strukure - KombinacijeOddelek: Programiranje | 1101 (1101) | BigWhale |