coraz najbliższy wynik w IFNULL

głosy
0

Mam skrypt konserwacyjny, który zrzuca kilka danych z jednego do drugiego db.

Próbuję uzyskać dane jako

  SELECT id, IFNULL(rank1,(SELECT rank2 
  FROM table  
  WHERE rank1 IS NOT NULL and 
        rank2<rank2 of current row 
  ORDER BY rank2 LIMIT 1)) FROM table

Co ja próbuje dostać z rank2 prądu rzędu, jest najbliższy rank2 gdzie rank1 nie jest null. Robię założenie, że rank1 jest skutecznym zamiennikiem rank2

Tak, uważam, że mam dwa problemy.

  1. Nie sądzę, mam rank2 być stosowany w zagnieżdżony select
  2. Nie wiem, jak to powiedzieć „się najbliżej rank2<rank2do prądu.

Wartości mam dla zakresu Rank1 z 0-20,000 i rank2 waha się od 0-150,000 (nie wiem, dlaczego to miałoby to znaczenia). Nie jest skutecznym korelacja pomiędzy szeregach.

Rank1 jest zawsze bardziej wiarygodne postać, ale często jest zerowa, więc staram się fudge na moje zamówienie z tego rodzaju wymiany.

Oto trochę przykładowych danych do wykorzystania jako przykład

ID rank1 rank2
1 120000 14000
2 120000 18420
3 126000 15500
4 85,000 NULL
5 75000 16000
6 70,000 15,700
7 68000 NULL
8 42000 NULL
9 26000 NULL
10 21500 8000

Mam nadzieję wrócić zamówienie 2,5,4,6,7,3,1,8,9,10. lub coś blisko tego. Zasadniczo, kiedy mam null dla rank2 dostać najbliższą rank2 do najbliższego rank1.

Nie spodziewam się, że jest „doskonałe”, ale lepiej niż po prostu sortowania na rank1.

Utwórz 27/08/2009 o 03:56
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Nie jestem w 100% pewien co pytasz. Będzie łączyć (rank1, rank2, rankX), gdzie byłoby zwrócić pierwsze prace niezerową wartość dla ciebie?

Odpowiedział 27/08/2009 o 04:17
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more