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 :

Supprimer les doublons d'un SELECT sur certaines colonnes


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2010
    Messages : 59
    Points : 55
    Points
    55
    Par défaut Supprimer les doublons d'un SELECT sur certaines colonnes
    Bonjour,

    j'essaye de supprimer les doublons portant sur plusieurs colonnes de mon SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT `NumMesure`, `TagRIFD`, `IdMalette`,
    	COUNT(`IdMesure`) AS 'NbMesure',
    	MIN(`DateHeure`) AS 'Debut',
    	MAX(`DateHeure`) AS 'Fin',
    	MIN(`Valeur`) AS 'ValeurMin',
    	MAX(`Valeur`) AS 'ValeurMax'
    FROM `rfid_mesure`
    WHERE `DateHeure` > '2012-09-25 00:00:00'
    	AND `DateHeure` < '2012-09-29 23:59:59'
    GROUP BY `NumMesure`;
    Cependant cette requête me retourne des doublons au niveau de toutes les colonnes suivant 'NumMesure'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    7527	E01FA060A546451A	9990806	1	2012-09-25 09:40:56	2012-09-25 09:40:56	19.90	19.90
    7528	E01FA060A546451A	9990806	1	2012-09-25 09:40:56	2012-09-25 09:40:56	19.90	19.90
    7529	E01FA060A546451D	8880153	6	2012-09-25 08:52:37	2012-09-25 09:42:37	16.15	18.93
    7530	E01FA060A546451D	8880153	6	2012-09-25 08:52:37	2012-09-25 09:42:37	16.15	18.93
    7531	E01FA060A546451D	8880153	6	2012-09-25 08:52:37	2012-09-25 09:42:37	16.15	18.93
    J'aimerais que ma requête élimine les doublons par rapport à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TagRIFD`, `IdMalette`,
    COUNT(`IdMesure`) AS 'NbMesure',
    MIN(`DateHeure`) AS 'Debut',
    MAX(`DateHeure`) AS 'Fin',
    MIN(`Valeur`) AS 'ValeurMin',
    MAX(`Valeur`) AS 'ValeurMax'
    Par exemple si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT  `TagRIFD` ,  `IdMalette` ,
    	COUNT(  `IdMesure` ) AS  'NbMesure',
    	MIN(  `DateHeure` ) AS  'Debut',
    	MAX(  `DateHeure` ) AS  'Fin',
    	MIN(  `Valeur` ) AS  'ValeurMin',
    	MAX(  `Valeur` ) AS  'ValeurMax'
    FROM  `rfid_mesure`
    WHERE  `DateHeure` >  '2012-09-25 00:00:00'
    	AND  `DateHeure` <  '2012-09-29 23:59:59'
    GROUP BY  `NumMesure`
    ça marche très bien !
    Mais il me faut également le 'NumMesure'

    Comment faire ?

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    1) Toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction de groupage doivent figurer dans le GROUP BY sous peine de voir des valeurs aléatoires pour les colonnes manquantes.

    2) Ton besoin manque de clarté.
    Veux-tu chercher tes COUNT, MIN et MAX pour chaque NumMesure ?
    Pour chaque TagRIFD ?
    Pour chaque IdMalette ?
    Pour chaque combinaison de 2 de ces colonnes ?
    Pour la combinaison de ces trois colonnes ?

    3) Es-tu sûr de tes bornes temporelles ?
    Regarde si tu ne peux pas plutôt utiliser BETWEEN qui inclut les bornes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/05/2014, 13h48
  2. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  3. Réponses: 1
    Dernier message: 02/07/2008, 18h49
  4. [Access] supprimer les doublons sur deux champs
    Par nini94 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 13/10/2006, 11h41
  5. [ListView]Supprimer les doublons
    Par mohamed dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/10/2005, 12h14

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