Selectare valoare ultim stadiu SQL

Salut.
Am asa tabel:

trebuie sa fac un query care sa-mi returneze valorile (Coloana Valoare 1) pentru fiecare indicator astfel incat acea valoare sa corespunda stadiului maxim pe un indicator. Deci indicatorii pot trece prin n stadii (dar nu toti o data, pe rand), si la fiecare moment de timp tre sa iau ultima valoare pentru fiecare. Pe un IdProiect pot avea m - indicatori, deci normal am nevoie de filtrare pe proiect.

In acest caz ar trebui sa am un rezultat de genu:
Valoare 1:
13
15
14

Dacă am înțeles bine, poți sorta coloana aia cu ORDER BY IdIndicator DESC LIMIT 1.

e mai subtil de-atat:

select * from (select * from tabela  order by valoare1 desc) as t group by IdIndicator

asta pt mysql. nu stiu in alte sql-uri daca merge si mai simplu.

2 Likes

Soluția lui @AdrianBasalic e cea care trebuie (nu am stat să văd dacă e scris corect, dar n-are de ce să nu fie).

nu merge solutia respectiva pentru ca coloana valoare 1 nu este neaparat o valoare crescatoare, si nici macar nu se poate de spus ca e o coloana strict numerica (eu voi avea 3 coloane de valori, 1 numerica,1 tine Id-ul unei valori varchar iar ultima coloana va fi varchar(250)), imagineaza-ti ca sunt numarul de angajati intr-o firma, in timp(adica la un stadiu mai avansat, stadiu insemnand etape de dezvoltare ) nr lor poate sa scada

-select * from (select * from tabela  order by valoare1 desc) as t group by IdIndicator
+select * from (select * from tabela  order by Stadiu desc) as t group by IdIndicator

there.

1 Like

merge brici, merci tare mult!

Se mai complica un pic treaba, ar trebui sa fac acel query fara subquery in FROM, fiindca vreau sa fac un view pe baza lui (am văzut ceva gen pe stackoverflow cu UNION, dar inca nu-s asa tare, iar treaba e urgenta)

poti sa faci 2 view-uri

1 Like