Chcę wybrać 3 wiersze z największą wartością distance dla każdego id. Tabela ma dane w postaci (id=1,distance=0.4;id=1,distance=0.3;id=1,distance=0.8;id=1....id=N;distance=M.M
)

  1. SELECT id,distance FROM distances
  2. GROUP BY id,distance
  3. HAVING count(*)<3
  4. ORDER BY id;


Powyższy kod pokaże mi wynik jakiego PRAWIE oczekuję, wyświetla 3 dla każdego ID, ale wartości są "z sufitu"
Chciałbym to za pomocą bazy danych przerobić do postaci:

Kod
id | distance1 | distance2 | distance3


Z czego skorzystać? Jak to zrobić?