Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa neslaganjem select distinct i order by

[es] :: MySQL :: Problem sa neslaganjem select distinct i order by

[ Pregleda: 3507 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MilošV
Podgorica

Član broj: 7996
Poruke: 484
195.66.163.*



+1 Profil

icon Problem sa neslaganjem select distinct i order by26.02.2004. u 08:20 - pre 245 meseci
Cao :)
Problem je sljedeci:
Kod query-ja
"SELECT KOLONA1 FROM TABELA1 ORDER BY ID DESC"
sortiranje radi kako treba (ID je auto_increment -redni broj upisa)
Kad stavim
"SELECT DISTINCT KOLONA1 FROM TABELA1 ORDER BY ID DESC"
sortira ga potpuno nelogicno (najveci ID je negdje na sredini)
Ista stvar se desava kad umjesto ID stavim da sortira po datumu upisa (timestamp-u)

Sto sam uradio, gdje sam pogrijesio? :)

//napomena: ovo sa nedozvoljavanjem da naslov teme bude makar dijelom ispisan velikim slovima je prilicno naporno :(
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Problem sa neslaganjem select distinct i order by26.02.2004. u 09:43 - pre 245 meseci
Citat:
How MySQL Optimises DISTINCT

DISTINCT is converted to a GROUP BY on all columns, DISTINCT combined with ORDER BY will in many cases also need a temporary table.

MySQL uzima prvu pojavu vrednosti KOLONA1 i vezuje tu vrednost za odgovarajući ID. ID-ovi ostalih pojava iste vrednosti KOLONA1 se ignorišu. Kada poteraš sortiranje u opadajućem redosledu ID-a dobijaš rezultat po ID-ovima prvih pojava vrednosti KOLONA1.
Code:
SELECT KOLONA1, MAX(ID) AS MAXID
FROM TABELA1
GROUP BY KOLONA1
ORDER BY MAXID DESC

Ovo bi trebalo da radi.
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Problem sa neslaganjem select distinct i order by26.02.2004. u 15:44 - pre 245 meseci
Probaj samo da ukljucis i tu kolonu u select.


Znaci select kolona1, id from tabela1 order by id desc.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Problem sa neslaganjem select distinct i order by27.02.2004. u 08:23 - pre 245 meseci
byTer: select kolona1, id from tabela1 order by id desc
- ako 2 zapisa u tabeli imaju istu vrednost za polje kolona1, na ovaj način će ta vrednost biti izlistana 2 puta, što se kosi s traženom pretpostavkom o jedinstvenom listingu (DISTINCT) vrednosti ove kolone.
 
Odgovor na temu

tweeester
Ivan Arandjelovic
bg yu

Član broj: 724
Poruke: 882
*.kc.vicert.com

Sajt: www.javasvet.net


Profil

icon Re: Problem sa neslaganjem select distinct i order by27.02.2004. u 09:53 - pre 245 meseci
Veoma interesantan problem, ali resenje je naravno trivijalno stvar je u tome da doticni upit:

Citat:
tizza:
"SELECT DISTINCT KOLONA1 FROM TABELA1 ORDER BY ID DESC"


ustvari nije validan (semanticki) pa ce svaka baza odbiti da ga izvrsi. Pokusaj nesto slicno da poteras na MSSQL-u ili Oracle serveru i videce. Stvar je MySQL-a sto dozvoljava ovako nesto ... ali onda bi oni morali da objasne koja se logika primenjuje prilikom izvrsenja ovakvog upita.

Pozdrav

<< tko leti vrijedi, tko ne leti ne vrijedi >>
 
Odgovor na temu

MilošV
Podgorica

Član broj: 7996
Poruke: 484
195.66.163.*



+1 Profil

icon Re: Problem sa neslaganjem select distinct i order by27.02.2004. u 13:19 - pre 245 meseci
@NoviKorisnik: Ovaj skript koji si mi dao radi upravo ono sto sam htjeo :) Hvala! Hvala i na objasnjenju :)

@byTer
'select kolona1, id from tabela1 order by id desc'
dace isto sto i
'select kolona1, id from tabela where 1 order by id desc'
ili
' select distinct kolona1, id from tabela where 1 order by id desc'
zato sto je kolona ID po defaultu :) drugacija u svakom redu. Kontas? :)

@tweeester: Mozes li to malo da "potkrijepis argumentima" :) Nemam ni MSSQL ni Oracle ovdje ali zato imam InterBase (Firebird, tacnije) koji ne samo da ne prepoznaje gresku u upitu vec i radi upravo ono sto sam zelio... Da li mi to IB cita misli ili je to takodje "njihova stvar"? :)

Pozdrav
Tica
 
Odgovor na temu

tweeester
Ivan Arandjelovic
bg yu

Član broj: 724
Poruke: 882
*.kc.vicert.com

Sajt: www.javasvet.net


Profil

icon Re: Problem sa neslaganjem select distinct i order by27.02.2004. u 14:43 - pre 245 meseci
Pazi sad, nemoj da se uvredis .... ako razmilis strukturalno kako ce baza podataka da uradi zahtevani upit doci ces do zakljucka da to nije moguce uraditi jer sta je vrednost kolone ID kada se uradi distinct po KOLONA1 ??
A evo i dokaza (Oracle):
Code:

desc mbr_prty_ent;

 Name                          Type

 MBR_NUM                                                NOT NULL VARCHAR2(15)
...<nebitno>...
 LANG_CD                                                CHAR(2)
...<nebitno>...

select distinct mbr_num from mbr_prty_ent order by lang_cd
                                                    *
ERROR at line 1:
ORA-01791: not a SELECTed expression



<< tko leti vrijedi, tko ne leti ne vrijedi >>
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Problem sa neslaganjem select distinct i order by27.02.2004. u 15:43 - pre 245 meseci
Citat:
tizza:
'select kolona1, id from tabela1 order by id desc'
dace isto sto i
'select kolona1, id from tabela where 1 order by id desc'
ili
' select distinct kolona1, id from tabela where 1 order by id desc'
zato sto je kolona ID po defaultu :) drugacija u svakom redu. Kontas? :)
Tica



E ovo mi bas i nije jasno. Mislim kakve veze ima prvi sa drugim querijem?
Cini mi se da sam izostavio Distinct inace sve ostalo je dobro.
 
Odgovor na temu

MilošV
Podgorica

Član broj: 7996
Poruke: 484
*.promonte.com.



+1 Profil

icon Re: Problem sa neslaganjem select distinct i order by28.02.2004. u 10:12 - pre 244 meseci
Cao :)
Mislim da shvatam sto hoces da kazes :) ...eto napretka :)
BTW da sam se uvrijedio, ne bih stavljao ovoliko smajlija u poruke. Evo ga jos jedan :)
Citat:
sta je vrednost kolone ID kada se uradi distinct po KOLONA1

Mozes onda i pitati sto je vrijednost ID u upitu:
Code:
SELECT KOLONA1 FROM TABELA1 WHERE [USLOV] ORDER BY ID DESC

Vidis, stvar sam (mozda i pogresno) kontao ovako: pomenuti upit "SELECT KOLONA1 FROM TABELA1 WHERE [USLOV] ORDER BY ID DESC" bi (in my book) trebao da pronadje odogovarajuce vrste (tj. njihove ...kako da kazem... polozaje) u tabeli i zatim ih poslozi tj. prikaze poslozene po odgovarajucim vrijednostima ID u svakoj od njih (izgleda da InterBase radi upravo tako).
Stoga sam i pomislio da ce SELECT DISTINCT... bla, bla, bla...
1) napraviti "listu" vrsta sa razlicitim vrijednostima u koloni KOLONA1
2) posloziti ih po odgovarajucim vrijednostima ID
3) Prikazati srecnom korisniku=meni

Kad ga ovako slozim ne zvuci toliko nelogicno, jelda?
Evo jos par smajlija :) :)

@byTer
Vidi ovako: ne postoje dva ista ID-ja u cijeloj tabeli. Upit "SELECT DISTINCT ID, KOLONA1... " ce traziti vrste u kojima su isti i ID i KOLONA1, a takvih nema jer je ID uvjek razlicit=> prikazace sve ID, KOLONA1 u tabeli. Zato je "SELECT DISTINCT ID..." <=> "SELECT ID ... WHERE 1"
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Problem sa neslaganjem select distinct i order by28.02.2004. u 16:51 - pre 244 meseci
Aaaa, kontam. A radi li SELECT (DISTINCT kolona1), ID ....?

Later that day...

Probao sam u SQL Serveru ne radi..
 
Odgovor na temu

[es] :: MySQL :: Problem sa neslaganjem select distinct i order by

[ Pregleda: 3507 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.