IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Limiter le nombre d'occurence d'une colonne


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Par défaut Limiter le nombre d'occurence d'une colonne
    Bonjour,

    Je n'arrive pas a construire une requête qui me permette de filtrer une colonne sur X occurence (dans mon cas 3).

    La table ressemble a ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    --
    -- Structure de la table `table1`
    --
     
    CREATE TABLE `table1` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `id_truc` int(11) unsigned NOT NULL,
      `id_machin` int(11) unsigned NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `table1`
    --
     
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(1, 1, 2);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(2, 1, 1);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(3, 1, 3);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(4, 1, 4);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(5, 2, 1);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(6, 2, 2);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(7, 3, 2);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(8, 4, 2);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(9, 4, 3);
    INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(10, 4, 1);
     
     
    SELECT * 
    FROM table1 
    WHERE id_machin<5 ?? AJOUT LIMITATION 3 OCCURENCES pour id_truc ??
    ORDER BY ID ASC
    Et le résultat que je veux obtenir :

    id 1 (premier résultat id_truc = 1 dans la colonne id_machin,id le + petit)
    id 2 (2eme résultat id_truc = 1 dans la colonne id_machin)
    id 3 (3eme résultat id_truc = 1 dans la colonne id_machin)
    id 5 (premier résultat id_truc = 1 dans la colonne id_machin)
    id 6 (2eme résultat id_truc = 2 dans la colonne id_machin)
    id 7 (premier résultat id_truc = 3 dans la colonne id_machin)
    id 8 (premier résultat id_truc = 4 dans la colonne id_machin)
    id 9 (2eme résultat id_truc = 4 dans la colonne id_machin)
    id 10 (3eme résultat id_truc = 4 dans la colonne id_machin)
    J'ai pensé a having + un count sur id_truc mais sans succès.
    Merci a ceux qui pourront m'éclairer

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Je le ferais en ajoutant un numéroteur de ligne, qui repose sur l'idée que la 3ème ligne est celle qui est précédée par deux autres...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT T1 .*, count(*) AS Ordre
    FROM table1 T1
      INNER JOIN table1 Tn ON T1.id_truc = Tn.id_truc AND T1.id >= Tn.id
    GROUP BY T1.id
    HAVING count(*) <=3
    ORDER BY id, ordre

Discussions similaires

  1. limiter le nombre de lignes et de colonnes d'une feuille excel
    Par Laye dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/01/2023, 22h55
  2. Nombre d'occurence dans une colonne
    Par isitien dans le forum Excel
    Réponses: 4
    Dernier message: 02/12/2011, 16h51
  3. nombre d'occurences d'une valeur dans une colonne
    Par Invité dans le forum Excel
    Réponses: 3
    Dernier message: 28/12/2007, 14h39
  4. Calcul du nombre d'occurences dans une colonne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/09/2007, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo