[MySql] Pobieranie ostatniej wartosci ze zbioru

0

Witam!
Mamy taki zbiór danych :

nr wart data inne_kolumny
35 1 15:01:01
35 2 15:03:01
35 2 15:05:01
36 1 15:01:11
36 2 15:03:12
36 2 15:04:13
37 1 15:01:21
37 2 15:03:21
37 1 15:07:21

Chciałbym teraz z niego wyciągać dla każego nr ostatnią wartość (na podstawie daty) czyli:

35 2 15:05:01
36 2 15:04:13
37 1 15:07:21

Ma ktoś jakiś pomysł ?

0

SELECT t.* FROM Tabela t WHERE t.wart = 3

0

Chciałbym teraz z niego wyciągać dla każego nr ostatnią wartość (na podstawie daty) czyli:

EDIT:

SELECT nr, max(data), wart,FROM tabela GROUP BY nr

---EDIT 2 ----
To jeszcze taka zagadka z next level : Jak odczytać wartość przed ostatnią czyli
35 2 15:03:01
36 1 15:01:11
37 2 15:03:21

Jakiś pomysł ? :)

0

SELECT nr, max(data), wart,FROM tabela WHERE data NOT IN (SELECT max(data) FROM tabela) GROUP BY nr

0

niestety ta query jest bledna, bo max(data) z podzapytania zwraca max z calej tabeli

dane testowe:
declare @T table (nr int, wart int, data datetime)
insert into @T
select 35, 1, '15:01:01' union all
select 35, 2, '15:03:01' union all
select 35, 2, '15:10:01' union all
select 36, 1, '15:01:11' union all
select 36, 2, '15:03:12' union all
select 36, 2, '15:10:01' union all
select 36, 2, '15:11:01' union all
select 37, 1, '15:01:21' union all
select 37, 2, '15:03:21' union all
select 37, 1, '15:07:21'

query1 - max data dla danego numeru
SELECT nr, max(data) FROM @T
group by nr

query 2 - przed ostatnia data dla danego numeru (nie uwzglednia ze dla danego nr jes tylko jeden wpis)
select T.nr, max(T.data) from
(select nr, max(data) as maxData FROM @T group by nr) M
inner join @T T on M.nr=T.nr and T.data<M.maxData

query 3 - uwzglednia sytuacje kiedy dla danego nr jest tylko jedna data (lub kilka takich samych)
select nr, max(data) from
(
select isnull(T.nr, M.nr) as nr, isnull(T.data,M.maxData) as data from
(select nr, max(data) as maxData FROM @T group by nr) M
left join @T T on M.nr=T.nr and T.data<M.maxData
) T
group by nr
group by T.nr

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