Ciao a tutti,
sto utilizzando MariaDB, ma poco centra con il mio problema 
Il problema sta su GROUP BY, credevo di averne capito il funzionamento, ma in realtà continuo ad avere un comportamento non voluto e a mio avviso inspiegabile.
Ho una tabella con i seguenti dati:
Id |
Val |
DataIn |
DataOut |
1 |
25 |
2019-02-09 |
NULL |
2 |
25 |
2020-01-09 |
NULL |
3 |
239 |
2019-10-06 |
NULL |
4 |
239 |
2020-06-10 |
2021-05-28 |
5 |
67 |
2021-07-26 |
NULL |
6 |
67 |
2018-02-20 |
NULL |
7 |
25 |
2021-07-26 |
NULL |
A questo punto vorrei estrarre tutti i record con MAX(DataIn), e con la query che ho scritto funziona ma...
codice HTML:
SELECT id, val, MAX(DataIn) FROM test GROUP BY val
...mi ritrovo con DataIn e Val corretti, ma Id sbagliato:
Id |
Val |
MAX(DataIn) |
1 |
25 |
2021-07-26 |
5 |
67 |
2021-07-26 |
3 |
239 |
2020-06-10 |
Non capisco il senso di questo risultato.
Se è stata estratta correttamente la data massima e il relativo valore Val, perchè devo trovarmi con Id 1,5,3 e non 7, 5, 4?
Cosa mi sta sfuggendo?
E' ovvio che avere un risultato di questo tipo porta solo a problemi quando è ora di effettuare un JOIN con altre tabelle.
Vi ringrazio anticipatamente per l'aiuto.