Maison  >  Article  >  base de données  >  Comment utiliser Rank(over() dans SQL

Comment utiliser Rank(over() dans SQL

下次还敢
下次还敢original
2024-05-09 07:42:18718parcourir

La fonction RANK() OVER() en SQL est utilisée pour attribuer des valeurs de classement aux enregistrements de données. Il accepte une clause ORDER BY spécifiant les colonnes à classer et l'ordre de tri. Les paramètres incluent : le nom de la colonne (colonne à classer), l'ordre de tri (croissant ou décroissant) et la manière dont les valeurs NULL sont traitées (première, dernière ou uniquement les valeurs non NULL). Cette fonction est utilisée pour attribuer le même rang ou un rang unique aux enregistrements avec la même valeur, et peut exclure ou gérer les valeurs NULL.

Comment utiliser Rank(over() dans SQL

Utilisation de RANK() OVER() en SQL

La fonction RANK() OVER() est utilisée en SQL pour classer les données et attribuer une valeur de classement à chaque enregistrement. Cette fonction accepte une clause ORDER BY spécifiant les colonnes à classer et l'ordre de tri.

Syntaxe :

<code>RANK() OVER (ORDER BY 列名 [ASC|DESC] [NULLS FIRST|LAST|ONLY])</code>

Paramètres :

  • Nom de la colonne : Spécifiez les colonnes pour participer au classement.
  • ASC|DESC : Spécifiez l'ordre de classement (ascendant ou décroissant).
  • NULLS FIRST|LAST|ONLY : Spécifiez comment gérer les valeurs NULL.

Utilisation :

La fonction RANK() OVER() est utilisée pour effectuer différents types de classements sur les données, notamment :

  • Attribuer le même classement aux enregistrements avec la même valeur
  • Attribuer un caractère unique aux enregistrements avec des Classement des valeurs
  • Exclure les valeurs NULL ou classer les valeurs NULL en premier/dernier

Exemple :

L'exemple suivant classe les enregistrements dans le tableau "Étudiants" en fonction de la colonne "Score", de haut en bas :

<code>SELECT *, RANK() OVER (ORDER BY 分数 DESC) AS 排名
FROM 学生;</code>

Les résultats sont les suivants :

Numéro d'étudiant Nom Score Classement
1 Xiao Ming 95 1
2 小华 90 2
3 Xiaoli 85 3
4 Xiaogang 80 4

Remarques :

  • CLASSEMENT( ) OVER() Retour Les valeurs de classement commencent à 1 et non à 0.
  • S'il y a plusieurs enregistrements avec la même valeur dans la colonne selon laquelle vous effectuez le classement, ces enregistrements se verront attribuer la même valeur de classement.
  • Pour les valeurs NULL, l'option NULLS FIRST classe les valeurs NULL en premier, l'option NULLS LAST classe les valeurs NULL en dernier et l'option NULLS ONLY classe uniquement les valeurs non NULL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn