Ajouter le nombre de résultat dans une ligne

Résolu/Fermé
Kanodai - 2 sept. 2022 à 16:34
 Kanodai - 2 sept. 2022 à 17:15

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

A voir également:

2 réponses

yg_be Messages postés 21821 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 octobre 2023 1 383
Modifié le 2 sept. 2022 à 17:11

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

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
yg_be Messages postés 21821 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 octobre 2023 1 383 > Kanodai
2 sept. 2022 à 17:06

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

0
yg_be Messages postés 21821 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 octobre 2023 1 383 > yg_be Messages postés 21821 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 octobre 2023
2 sept. 2022 à 17:12

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

0

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

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

0