Najnowsza data dla każdej z wartości

0

Cześć,
Potrzebuję podpowiedzi przy pisaniu zapytania. Mam np:
id wartosc date


1 78324 2009-01-26 1500.000
2 90682 2009-01-26 1508.000
3 78323 2009-01-26 1516.000
4 92511 2009-01-26 1637.000
5 92511 2009-01-26 1646.000
6 92511 2009-01-26 1600.000
7 92511 2009-01-26 1626.000

Chciałbym by zapytanie zwróciło mi id wartość oraz datę tylko dla najnowszej daty więc w tym wypadku:
1 78324 2009-01-26 1500.000
2 90682 2009-01-26 1508.000
3 78323 2009-01-26 1516.000
7 92511 2009-01-26 1626.000

Póki co napisałem coś takiego:
SELECT a.id, a.wartosc, a.date FROM tabela a
WHERE a.datetime = ( SELECT MAX( date ) FROM tabela WHERE id_tow = a.wartosc

Jednak to zwraca mi tylko jeden rekord z najnowsza wartością zamiast każdego rekordu i dla niego najnowsza wartość.

Pomoże ktoś?

0

Najnowsza data zawsze jest i będzie tylko jedna - inaczej nie byłaby przecież najnowsza.

Opisz swój problem jeszcze raz, ponieważ póki co nie wiadomo wcale dlaczego wybrałeś akurat wiersze #1, #2, #3 i #7, nawet jeśli jest to oczywiste dla Ciebie.

0

Chciałbym by zapytanie zwracało wszystkie wartości(wartości powtarzają się) ale tylko raz z najnowszymi datami (pomimo, że w bazie występują np 100 razy z różnymi datami)

0

Spróbuj tak:

SELECT
  `rows`.`number`,
  max(`rows`.`date`)

FROM `rows`

GROUP BY `rows`.`number`
3
SELECT a.id, a.wartosc, a.date FROM tabela a JOIN (SELECT wartosc, Max(datetime) dt FROM tabela GROUP BY wartosc)  sub ON (sub.wartosc, sub.dt)=(a.wartosc, a.datetime)
1
WITH CTE
as 
(SELECT wartosc, MAX(date) LastDate
 FROM tabela
Group by wartosc);

SELECT a.id, a.wartosc, a.date
FROM tabela a INNERJOIN CTE
ON a.date = CTE.LastDate
0

Konkret Panowie! Dzięki!

0

Z funkcją analityczną:

select 
   b.id,b.wartosc,b.date 
from (
  select 
   a.id,
   a.wartosc,
   a.date,
   row_number() over (partition by a.wartosc order by a.date desc) rn 
  from tabela a) b where b.rn=1; 

Dla każdej wartości numerujemy wiersze w porządku malejącym i wybieramy wiersze z numerem 1.

1 użytkowników online, w tym zalogowanych: 0, gości: 1