Ma table ressemble à ceci.Comment écrire une requête SQL pour sélectionner des lignes avec une valeur maximale dans une colonne
Id | Name | Ref | Date | From
10 | Ant | 100 | 2017-02-02 | David
10 | Ant | 300 | 2016-01-01 | David
2 | Cat | 90 | 2017-09-09 | David
2 | Cat | 500 | 2016-02-03 | David
3 | Bird | 150 | 2017-06-28 | David
Ceci est le résultat que je veux.
Id | Name | Ref | Date | From
3 | Bird | 150 | 2017-06-28 | David
2 | Cat | 500 | 2016-02-03 | David
10 | Ant | 300 | 2016-01-01 | David
Ma cible est la plus haute Ref par Id, trié par Date de commande desc.
Pourriez-vous s'il vous plaît me parler de la façon d'écrire une requête sql en utilisant pl/sql.
Chaque fois que vous êtes invité à résoudre un problème de "plus haut" ou "plus bas", vous devez penser à des doublons. Que se passerait-il si les deux lignes pour Ant avaient Ref = 300? Lequel des deux est "le plus haut"? Avez-vous besoin d'inclure les deux lignes dans le résultat? Ou prenez juste celui avec la date la plus récente? Ou les doublons ne sont-ils pas possibles dans la colonne Ref? Ensuite, lorsque vous commandez les résultats par date - si deux dates sont égales, comment vous pouvez rompre l'égalité? – mathguy