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 :

Dédoublonnage et comptage en une seule étape


Sujet :

Requêtes MySQL

  1. #1
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut Dédoublonnage et comptage en une seule étape
    Bonjour à tous,

    Ma table (cf. pièce jointe) contient des doubons, j'aimerais dédoublonner sur toutes les lignes et compter ne nombre d'observations en une seule étape.

    Voici ce que je voudrais avoir comme résultat:

    numero_course =113620 count(*)=2

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Votre résultat attendu n'est pas cohérent, vu qu'il y a 3 lignes dans votre extrait pour le numéro de course 113620, pourquoi vouloir obtenir 2 ?
    Il faut des explications supplémentaires : quelles sont les colonnes sur lesquelles il faut dé doublonner et quelles sont celles qu'il faut regrouper pour compter ?

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut à tous.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS test
    --------------
     
    --------------
    CREATE TABLE test
    ( `id`         integer unsigned not null auto_increment primary key,
      `numero`     integer unsigned not null,
      `detection`  varchar(255)     not null,
       INDEX `idx` (`detection`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`numero`,`detection`) values
      (113620, 'localisateur'),
      (113620, 'GNSS'),
      (113620, 'GNSS')
    --------------
     
    --------------
    select * from test
    --------------
     
    +----+--------+--------------+
    | id | numero | detection    |
    +----+--------+--------------+
    |  1 | 113620 | localisateur |
    |  2 | 113620 | GNSS         |
    |  3 | 113620 | GNSS         |
    +----+--------+--------------+
    --------------
    select    numero,
              detection,
              count(*) as nbre
        from  `test`
    group by  numero, detection
      having  nbre >= 2
    order by  numero, detection
    --------------
     
    +--------+-----------+------+
    | numero | detection | nbre |
    +--------+-----------+------+
    | 113620 | GNSS      |    2 |
    +--------+-----------+------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Merci à tous, je vais tester lundi!

  5. #5
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Bonjour à tous,

    Tout d'abord merci pour la solution proposée à mon pb du vendredi dernier, ça marche nickel.

    Cependant j'ai un autre probleme:

    Je souhaiterais faire un comptage du nombre de lignes de ma table en pièce jointe, jusque là tout va bien. La spécificité est que, si

    technique_detection (n)='Localisateur' et technique_detection(n+1)='GNSS' et sont égaux à 'D' comme sur l'encadré, je considère que c'est deux lignes sont en doublons, donc j'en compte qu 'un.

    Au total, je dois avoir 8 lignes sans faire de create table.

    la requête deconstruction de la table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select  numero_course,technique_detection,type_horaire,utc_observation,ci,ch,cr from fluxpr_courses c  inner join fluxpr_positions p
     
    on p.id=c.id_fluxpr_positions
     
    inner join fluxpr_prs pr
     
    on c.id_fluxpr_positions=pr.id_fluxpr_positions where
     
    numero_course='113620'
     
    utc_observation between '2018-08-06:00:00' and '2018-08-12:00:00' and type = 'DetectionTrain'
     
    order by numero_course
    Merci de votre aide!!
    Images attachées Images attachées  

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut MEGAMIND2.

    Citation Envoyé par Megamind2
    Tout d'abord merci pour la solution proposée à mon pb du vendredi dernier, ça marche nickel.
    Je suis heureux que cela vous satisfasse.

    Citation Envoyé par Megamind2
    Je souhaiterais faire un comptage du nombre de lignes de ma table en pièce jointe, jusque là tout va bien. La spécificité est que, si
    technique_detection (n)='Localisateur' et technique_detection(n+1)='GNSS' et sont égaux à 'D' comme sur l'encadré, je considère que c'est deux lignes sont en doublons, donc j'en compte qu 'un.
    Je comprends votre demande ou vos deux lignes ne doivent en faire qu'une.
    Sauf que vous ne précisez pas laquelle je dois garder, à savoir "localisateur" ou "GNSS" ?
    Je pense que dans votre demande, gérer le rang de vos lignes est une erreur.

    Dans le résultat final, que dois-je obtenir comme comptage des lignes ?

    Le mieux serait de me donner un exemple un peu plus consistant afin d'avoir tous les cas possibles de ce que vous cherchez à faire.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre expérimenté
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Points : 1 489
    Points
    1 489
    Par défaut
    Bonjour Artemus,

    J'ai resolu mon problème. Je te remercie beaucoup. Très bonne journée!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/11/2016, 15h53
  2. [SQL] Comptage en une seule proc sql
    Par Areis dans le forum SAS Base
    Réponses: 2
    Dernier message: 15/11/2016, 09h25
  3. Top 5 (comptage et tri) en une seule requête
    Par Iohan dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2010, 15h58
  4. Réponses: 4
    Dernier message: 29/01/2009, 14h33
  5. Plusieurs comptages dans une seule requête
    Par DBA_OCP dans le forum Langage SQL
    Réponses: 9
    Dernier message: 01/12/2008, 19h54

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