Maison > base de données > tutoriel mysql > Comment sélectionner la première ligne de chaque groupe dans SQL ?

Comment sélectionner la première ligne de chaque groupe dans SQL ?

Mary-Kate Olsen
Libérer: 2025-01-22 06:05:08
original
784 Les gens l'ont consulté

How to Select the First Row of Each Group in SQL?

Sélectionnez la première ligne de chaque groupe en SQL

Dans la gestion de bases de données, il est souvent nécessaire de récupérer des ensembles de données spécifiques à des fins d'analyse ou de reporting. Cela implique de sélectionner la première ligne de chaque groupe d'enregistrements dans le tableau.

Supposons que vous ayez deux tables :

  • SM_Employee (employeeid, roleid, storeid)
  • SM_SalesRepWorkflow (workflowid, salesrepid, quantité attribuée, quantité restante, mois, année)

Question :

Votre tâche consiste à sélectionner la première ligne de détails pour chaque représentant commercial (SalesRepId) dans la table SM_SalesRepWorkflow pour le mois et l'année en cours.

Solution :

Pour cela vous pouvez utiliser la fonction ROW_NUMBER() en SQL :

SELECT *
FROM (
    SELECT workflowid, salesRepId, quantityAssigned,
            quantityLeft, month, year
            , ROW_NUMBER() OVER (PARTITION BY salesRepId ORDER BY workflowid) AS rownumber
    FROM sm_salesRepWorkflow
) AS subquery
WHERE rownumber = 1;
Copier après la connexion

Explication :

  • La requête externe attribue à chaque enregistrement un numéro de ligne, partitionne par colonne SalesRepId et trie par workflowid par ordre croissant.
  • La clause WHERE filtre les résultats pour inclure uniquement le premier enregistrement de chaque SalesRepId.

Cette requête identifie efficacement la première ligne d'enregistrements pour chaque représentant commercial au cours du mois et de l'année spécifiés. Il fournit un résultat concis, comme indiqué dans l'énoncé du problème :

  • WF_101 : EMP_101 : 100 : 90 : mai : 2013
  • WF_101 : EMP_102 : 100 : 100 : mai : 2013
  • WF_101 : EMP_103 : 100 : 80 : mai : 2013

En appliquant la fonction ROW_NUMBER(), vous pouvez récupérer efficacement la première ligne de données pour chaque groupe du tableau pour une analyse plus approfondie ou un rapport basé sur les paramètres requis.

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal