phoenix84
28.02.2012, 23:11:09
witam,
potrzebuje sie dowiedziec w jaki sposob wyjac najnowszy rekord lub grupe rekordow (po timestamp lub id), ktory spelnia jakies warunki, ale bez podzapytan, bo chce tego uzyc w perspektywie...
jedyne co przychodzi mi do glowy, to trzymac w innej tabeli duble najnowszych rekordow, ale tak sie ponoc robic nie powinno
dane przykladowe
id waluta kurs
1 USD 3,20
2 EUR 4,20
3 USD 3,10
4 EUR 4,10
5 USD 3
6 EUR 4
no i w efekcie chcialbym uzyskac wynik np:
USD 3
EUR 4
moze jest jakis patent na group by... ale wtedy zwraca mi pierwsze powtorzenia, a nie ostatnie...
bede wdzieczny za wskazowki
w necie pojawia sie cos takiego jak funkcja LAST(), ktora chyba rozwiazalaby mi problem, ale nie moge znalezc jej dokumentacji, a wywala mi error...
pozdrawiam,
k.
thextraman
29.02.2012, 14:57:02
A nie wystarczy
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 1
i tak samo w przypadku innych walut?
lkow77
20.03.2012, 20:16:28
Cytat(thextraman @ 29.02.2012, 14:57:02 )

A nie wystarczy
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 1
i tak samo w przypadku innych walut?
a z ciekawości, co w przypadku gdy następne zapytanie ma podawać np 9 wyników bez 1 -go już podanego?
np:
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3
następne zapytanie:
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 (bez tych LIMIT 3 z poprzedniego zapytania)
slammer
21.03.2012, 15:24:39
Cytat(lkow77 @ 20.03.2012, 20:16:28 )

a z ciekawości, co w przypadku gdy następne zapytanie ma podawać np 9 wyników bez 1 -go już podanego?
np:
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3
następne zapytanie:
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 (bez tych LIMIT 3 z poprzedniego zapytania)
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 3,7
lub
SELECT kurs FROM kursy WHERE waluta = 'USD' ORDER BY data_dodania DESC LIMIT 7 OFFSET 3
Masz 7 rekordów bez 3 pierwszych.