Affichage des numéros de ligne de valeurs uniques à l'aide de SQL
Le mot-clé DISTINCT dans SQL est utilisé pour récupérer uniquement des valeurs uniques à partir d'une colonne spécifiée. Dans ce cas particulier, vous souhaitez afficher les numéros de ligne des valeurs uniques dans une colonne à l'aide de la fonction ROW_NUMBER().
Cependant, la requête que vous avez fournie :
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
ne renvoie pas les résultats attendus car il élimine efficacement les doublons à l'aide de DISTINCT. En conséquence, il se comporte de la même manière que la requête suivante :
SELECT DISTINCT id FROM table WHERE fid = 64
Pour obtenir le résultat souhaité, vous pouvez utiliser la fonction DENSE_RANK() à la place. DENSE_RANK() attribue des numéros de ligne uniques à chaque valeur distincte dans l'ordre spécifié, même s'il existe des valeurs en double.
Voici la requête modifiée :
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Ceci La requête vous fournira les numéros de ligne correspondant aux valeurs uniques dans la colonne spécifiée pour les lignes satisfaisant la condition WHERE fid = 64.
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!