Wpis z mikrobloga

Pomógłby ktoś?
Robię sobie widok z danych i otrzymuję coś takiego:
name cost
Abdul 1400
Hasan 1400
Adolf 1200

Z tego widoku chciałbym wyciąganć tylko rekordy z największa ceną:
SELECT name, MAX(v.cost)
from view_table v
GROUP BY name;
I niestety wyrzuca mi 3 rekordy zamiast 2 :( Jak to rozpykać?

#mysql #bazydanych #programowanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@szalony_kefir: Phpmyadmin, struktura tabeli, w ostatniej kolumnie jest dodawanie indeksów. Pod tabelą też jest dodawanie indeksów.

A po co? Powiedzmy, że masz milion rekordów. Bez odpowiedniego indeksu mysql będzie musiał przejechać po całości, żeby znaleźć te z maksymalną wartością. Z indeksem 1 odwołanie na wartość maksymalną + x porównań gdzie ta wartość występuje (i oby cost był liczbą, a nie varcharem).

Przed zapytaniem daj słowo "explain" i wywołaj w phpmyadminie.
  • Odpowiedz