Comment trouver la valeur max et ses valeurs de champ associé en SQL?
Dire que j'ai une liste de noms des élèves et de leurs marques. Je veux trouver la note la plus élevée et l'étudiant, comment puis-je écrire une instruction select pour le faire?
Ce qui est un plus haut de "remarque"? Une remarque, c'est comme un commentaire, un morceau de texte. Entendez-vous la marque?
Ne vous souhaitez obtenir juste un étudiant ou êtes-vous prêt pour obtenir le les étudiants dans la sortie, s'il y a plus d'un qui part de la note la plus élevée?
Ne vous souhaitez obtenir juste un étudiant ou êtes-vous prêt pour obtenir le les étudiants dans la sortie, s'il y a plus d'un qui part de la note la plus élevée?
OriginalL'auteur Steve | 2011-06-01
Vous devez vous connecter pour publier un commentaire.
En supposant que vous voulez dire des marques plutôt que des remarques d'utilisation:
Ce sera généralement le résultat d'une manière très efficace de la requête. La sous-requête doit être exécutée une seule fois (sauf si votre SGBD est en état de mort cérébrale) et le résultat de la fed dans la deuxième requête. Vous pourriez vouloir vous assurer que vous avez un index sur la
mark
colonne.OriginalL'auteur paxdiablo
Si vous ne voulez pas utiliser une sous-requête:
Probablement pas ce que l'OP veut en cas d'égalité pour la 1ère place.
Il a expressément demandé à l'étudiant - pas tous les étudiants avec la note la plus élevée. Si il avait dit qu'il voulait de plusieurs élèves, je n'aurais pas proposé cet. Mais il n'a pas.
OriginalL'auteur Sam Dufel
OriginalL'auteur Algorithmist
Si vous utilisez une base de données qui prend en charge le fenêtrage,
Cela n'a probablement pas courir aussi vite que le
mark=(SELECT MAX(mark)...
requête de style, mais il serait utile de vérifier.OriginalL'auteur Andrew Lazarus
Dans SQL Server:
Ce sera le retour de tous les élèves qui ont le plus de marque, s'il est juste l'un d'entre eux ou plus d'un. Si vous souhaitez une seule ligne, la chute de la
WITH TIES
spécificateur. (Mais la ligne n'est pas la garantie d'être toujours le même, alors.)OriginalL'auteur Andriy M
Vous pouvez créer une vue et de le joindre avec table d'origine:
c'est juste si vous avez besoin de Max des Valeurs avec des infos
OriginalL'auteur Maadh
J'ai récemment eu une demande pour quelque chose "similaire" à ce post et je voulais partager une technique. Disons que vous avez un Ordre et OrderDetail table, et que vous voulez retourner les informations à partir du tableau de Commande avec le nom du produit associé à la plus haute à prix ligne de détail. Voici un moyen de l'enlever sans sous-tables, GRADE, etc.. La clé est de créer et d'agrégation qui combine la clé et la valeur du tableau détaillé et puis il suffit de max et de chaîne de la valeur que vous voulez.
OriginalL'auteur sisdog