Powiedzmy mam tabeli podobny do następującego:SELECT wiersze z drugą najwyższą wartość w kolumnie
Item Description Time
----- ----------- -----
ItemA1 descript 08-16-2013 00:00:00
ItemA2 descript 08-16-2013 00:00:00
ItemA3 descript 08-16-2013 00:00:00
.
.
ItemAN descript 08-16-2013 00:00:00
ItemB1 descript 08-13-2013 00:00:00
ItemB2 descript 08-13-2013 00:00:00
ItemB3 descript 08-13-2013 00:00:00
.
.
ItemBN descript 08-13-2013 00:00:00
.
.
.
ItemX1 descript 01-13-2012 00:00:00
ItemX2 descript 01-13-2012 00:00:00
ItemX3 descript 01-13-2012 00:00:00
.
.
ItemXN descript 01-13-2012 00:00:00
Grupy elementy są dodawane okresowo. Po dodaniu grupy przedmiotów wszystkie są dodawane w tym samym polu "Czas". "Czas" zasadniczo służy jako unikalny indeks dla tej grupy produktów.
Chcę WYBRAĆ grupę przedmiotów, które mają drugi najwyższy czas. W tym przykładzie moje zapytanie powinno wyciągnąć elementy "B". Wiem, że mogę zrobić max (time
), aby WYBRAĆ elementy "A", ale nie wiem, jak zrobić drugie.
Moje kolumny "Czas" są przechowywane jako TIMESTAMP, jeśli oznacza to cokolwiek.
Prawdopodobnie powinieneś przetestować zarówno rozwiązania MAX, jak i LIMIT/ORDER BY, ponieważ może wystąpić obniżenie wydajności w stosunku do LIMITów, w zależności od dostępności indeksów. http://stackoverflow.com/questions/426731/min-max-vs-order-by-and-limit –
możliwy duplikat [Jakie jest najprostsze zapytanie SQL, aby znaleźć drugą największą wartość?] (http: // stackoverflow .pl/questions/32100/what-is-the-simplest-sql-query-to-find-the-second-largest-value) – heretolearn