Maison >base de données >tutoriel mysql >Comment attribuer des numéros de ligne à des valeurs distinctes dans SQL ?
Numéros de lignes distincts en SQL à l'aide de Row_Number
Les requêtes distinctes en SQL sont utilisées pour récupérer des valeurs uniques à partir d'une colonne spécifiée. Cependant, il existe des scénarios dans lesquels il est souhaitable d'afficher non seulement des valeurs distinctes, mais également les numéros de ligne correspondants. Pour y parvenir, la fonction Row_Number peut être utilisée conjointement avec le mot-clé DISTINCT.
Dans l'exemple fourni, l'utilisateur a tenté de combiner DISTINCT avec Row_Number pour afficher des valeurs distinctes ainsi que des numéros de ligne :
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Cependant, cette requête n'a généré que des valeurs distinctes, similaires à la requête suivante :
SELECT distinct id FROM table WHERE fid = 64
Pour résoudre ce problème, le La fonction DENSE_RANK peut être utilisée à la place de Row_Number. DENSE_RANK attribue des numéros de ligne consécutifs à des valeurs distinctes, quelles que soient les lacunes dans les données.
Voici la requête corrigée :
SELECT distinct id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Cette requête fournira le résultat souhaité : une liste de valeurs distinctes avec les numéros de ligne correspondants, comme prévu.
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!