2017-06-28 1 views
0

Ma table ressemble à ceci.Pourriez-vous s'il vous plaît parler de l'écriture de la commande de requête Sql?

Id | Name | Ref |From 
10 | Ant | 100 | A 
10 | Ant | 300 | A 
2 | Cat | 90 | A 
2 | Cat | 500 | A 
3 | Bird | 150 | A 

Ceci est le résultat que je veux.

Id | Name | Ref | From 
3 | Bird | 150 | A 
2 | Cat | 500 | A 
10 | Ant | 300 | A 

Ma cible est la plus haute Réf. Pourriez-vous me parler de la façon d'écrire une requête sql en utilisant pl/sql.

+0

Lorsque vous dites que votre cible est l'arbitre le plus élevé, vous dites que vous voulez tout sélectionner et commander par l'arbitre le plus élevé? Aussi, est d'une colonne? – JohnDoe

+0

Il s'agit essentiellement de la même question [vous avez demandé trois heures plus tôt] (https://stackoverflow.com/q/44792879/146325). S'il vous plaît ne posez pas la même question plusieurs fois. C'est irrespectueux envers les gens qui essaient de vous aider et cela encombre le site avec du bruit. Si votre première question n'obtient pas la réponse, vous devez ** réviser la question ** pour clarifier vos exigences et ** contacter les intervenants ** pour expliquer pourquoi ils n'ont pas résolu votre problème. – APC

Répondre

0

Vous pouvez utiliser l'agrégation pour cela:

select id, name, max(ref) as ref, "From" 
from your_table 
group by id, name, "From"; 

, notez également les guillemets doubles autour de comme il est un mot-clé réservé. Je recommande d'utiliser un autre nom de colonne pour cela.

0

il suffit d'utiliser groupby et max(), comme celui-ci

select m.Id,m.Name,max(m.ref), m.From 
from myTable m 
group by m.Id,m.Name,m.From 
order by m.Id 
0

SELECT id, nom, max (ref) DE tablename GROUP BY nom Mais changer le nom de la colonne 'De', car il est un mot-clé réservé dans mysql.