ORDER BY Problem

ORDER BY Problem

am 19.12.2007 17:31:04 von Ben Butschko

Moin,

ich habe ein ORDER BY PRoblem:

Das Resultset wird nicht "korrekt" sortiert ASC oder DESC. Dennoch ist
IMO meine Abfrage und Sortierbedingung korrekt.

Das ist mein Ergebnis:

3.090591002403612
1.7499601996186656
9.48818027973175E-5
9.48818027973175E-5
9.48818027973175E-5

Warum kommt der erste Eintrag VOR dem 2? 3 ist > 1!

Wo ist nun genau der Fehler zu suchen?

Netten Gruß
Ben

Hier ist mein SQL (unnötige AND Bedingungen habe ich entfernt):

--

SELECT
MIN((6367.41*SQRT(2*(1-cos(RADIANS(geo_data.lat))*cos(0.9484 95441519)*(sin(RADIANS(geo_data.lon))*
sin(0.17655030031)+cos(RADIANS(geo_data.lon))*cos(0.17655030 031))-sin(RADIANS(geo_data.lat))*sin(0.948495441519)))))
AS pr_distance

FROM table_2

JOIN table_1 ON (table_2.userid = table_1.userid)
LEFT JOIN table_3 ON (table_2.userid = table_3.userid AND table_2.userid
= table_3.userid)
LEFT JOIN geo_data ON (table_1.zip = geo_data.zip)

WHERE table_2.insid = '31'

AND (6367.41*
SQRT(2*(1-cos(RADIANS(geo_data.lat))*cos(0.948495441519)*(si n(RADIANS(geo_data.lon))*sin(0.17655030031)+cos(RADIANS(geo_ data.lon))*
cos(0.17655030031))-sin(RADIANS(geo_data.lat))*sin(0.9484954 41519))) <=
10)

GROUP BY table_1.userid

ORDER BY pr_distance DESC LIMIT 0,10

--

Re: ORDER BY Problem

am 19.12.2007 17:37:37 von Johannes Mueller

Ben Butschko wrote:

> ich habe ein ORDER BY PRoblem:
>
> Das Resultset wird nicht "korrekt" sortiert ASC oder DESC. Dennoch ist
> IMO meine Abfrage und Sortierbedingung korrekt.
>
> Das ist mein Ergebnis:
>
> 3.090591002403612
> 1.7499601996186656
> 9.48818027973175E-5
> 9.48818027973175E-5
> 9.48818027973175E-5
>
> Warum kommt der erste Eintrag VOR dem 2? 3 ist > 1!

Genau, deswegen ist er vorne!

3 > 1.7 > 0.0000948

Grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: ORDER BY Problem

am 19.12.2007 17:45:02 von Ben Butschko

"Johannes Mueller" schrieb im Newsbeitrag
news:5ssvmkF1aav6jU1@mid.uni-berlin.de...
> Genau, deswegen ist er vorne!
>
> 3 > 1.7 > 0.0000948
>

Das verstehe ich nicht: wie kann 3 > 9 oder 1.7 > 9 sein?

Re: ORDER BY Problem

am 19.12.2007 17:48:16 von Ben Butschko

"Johannes Mueller" schrieb im Newsbeitrag
news:5ssvmkF1aav6jU1@mid.uni-berlin.de...
> Genau, deswegen ist er vorne!
>
> 3 > 1.7 > 0.0000948
>

Ah, alles klar...Da ich die pr_distance nur für die ORDER BY brauche,
reicht im select ein ROUND(MIN....., 1);

Danke :-)

Re: ORDER BY Problem

am 19.12.2007 18:09:17 von Sebastian Suchanek

Ben Butschko schrieb:
> "Johannes Mueller" schrieb im Newsbeitrag
> news:5ssvmkF1aav6jU1@mid.uni-berlin.de...
>> Genau, deswegen ist er vorne!
>>
>> 3 > 1.7 > 0.0000948
>
> Das verstehe ich nicht: wie kann 3 > 9 oder 1.7 > 9 sein?
>

Da steht nicht "9", sondern "9.48818027973175E-5".

Du solltest Dich kundig machen, was eine Exponentialdarstellung einer
Zahl bedeutet: http://de.wikipedia.org/wiki/Exponentialdarstellung


HTH,

Sebastian