Ajouter le nombre de résultat dans une ligne

Résolu

Bonjour,

Je souhaite faire une requête qui contient le nombre d’occurrence d'une valeur de la ligne dans la ligne.

Avec un exemple ce sera plus simple.

Imaginons une table avec les colonnes Prénom, Age et Activité et les données suivantes :

Prenom Age Activite

Anne 25 foot

Bastien 26 basket

Bastien 52 basket

Marc 27 course

Marc 30 cuisine

Marc 30 tricot

Marc 31 jeux vidéo

Et bien j'aimerai un retour comme suis :

Prenom Age Occurrence

Anne 25 1

Bastien 26 2

Bastien 52 2

Marc 27 3

Marc 30 3

Marc 31 3

La colonne "Occurrence" correspond au nombre de fois que le prénom est présent dans la table sans prendre en compte l'activité ("Marc 30 cuisine" et "Marc 30 tricot" ne sont pas différenciés par contre "Bastien 26 basket" et "Bastien 52 basket" sont bien différenciés car ils n'ont pas le même âge)

Auriez vous une solution ?


Windows / Firefox 104.0

2 réponses

  1. Contributeur

    bonjour,

    peut-être

    SELECT DISTINCT t.prenom, t.age, dp.np
    FROM tt AS t, (select prenom, count(*) as np from
       (select distinct prenom, age from tt) as d
        group by prenom)  AS dp
    WHERE (((t.prenom)=[d].[prenom]));
    
    1
    1. Non car si on fait ça on va avoir le nombre d’occurrence du couple [Prénom - Age] et non juste du prénom

      0
    2. Contributeur
      @Kanodai

      En effet, j'ai fait une autre suggestion, que je n'ai pas encore testée.

      0
    3. Contributeur
      @yg_be

      Testé (pas sous SQL server), adapté, semble ok.

      0
  2. à ceci près que le where peut être remplacer par une clause inner join

    Je pense qu'on tiens la solution, merci :)

    0