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

Langage SQL Discussion :

Compter après avoir éliminer les doublons


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Points : 41
    Points
    41
    Par défaut Compter après avoir éliminer les doublons
    Bonjour,

    Je dispose d'une table qui se présente un peu près comme ceci :

    --------------------------------
    Nom | Type | Commentaire
    --------------------------------
    ABC | Defg | Commentaire
    --------------------------------
    BAC | Fger | Commentaire
    --------------------------------
    ABC | Sert | Commentaire
    --------------------------------

    Je cherche à compter le nombre de chaque type dans ma table sachant que cette table contient des doublons, donc d'abord il faut éliminer les doublons avant de compter le nombre des types.

    Mais j'arrive pas à avoir un résultat logique, ça me retourne des nombres abusés.

    Ma requête se présente comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT TYP_OBJ, count(TYP_OBJ) AS nbr_type
    FROM T_OBJ 
    WHERE TYP_OBJ IN (
      SELECT  TYP_OBJ
      FROM T_OBJ
      GROUP BY TYP_OBJ, NOM_OBJ
      HAVING COUNT(*)>1) 
    GROUP BY TYP_OBJ;
    J'essaye de compter dans la table qui ne contient pas des doublons (résultats de la sous requête)

    Est ce quelqu'un sait pourquoi ma requête déconne et comment on fait dans ce cas ?

    Merci par avance

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Points : 41
    Points
    41
    Par défaut
    C'est bon, solution trouvé, j'avais mal raisonné

    fallait opter pour cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT TYP_OBJ, count(TYP_OBJ)
    FROM (
      SELECT TYP_OBJ
      FROM T_OBJ
      GROUP BY TYP_OBJ, NOM_OBJ
      HAVING COUNT(*)>1)
    GROUP BY TYP_OBJ;

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT count(DISTINCT TYP_OBJ)
    FROM  T_OBJ
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT count(DISTINCT TYP_OBJ)
    FROM  T_OBJ
    Je vous remercie pour votre réponse mais au fait c'est le nom de l'objet qui existe en doublon et qui doit être unique, le type c'est normal qu'il se répète plusieurs fois comme c'est un type, dans ce cas votre requête retourne 1 pour chaque type ce qui est tout à fait logique avec le DISTINCT, n’empêche je suis persuadée que je me suis compliquer les choses il doit exister une requête beaucoup plus simple que la mienne.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    En donnant un exemple plus précis et en respectant la charte de postage :
    http://www.developpez.net/forums/a69...gage-sql-lire/

    Cela nous permettrait d’avancer sur votre demande...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Intuitivement :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select Type, count(distinct Nom)
    from latable
    groupe by Type
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. comment éliminer les doublons
    Par fk04 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/08/2006, 17h22
  2. Éliminer les doublons d'une BDD MySQL
    Par sansouna24 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/05/2006, 11h26
  3. Réponses: 2
    Dernier message: 12/05/2006, 08h35
  4. Après importation, eviter les doublons
    Par uloaccess dans le forum Access
    Réponses: 6
    Dernier message: 16/11/2005, 16h36
  5. [sql] [oracle] éliminer les doublons dans sum ?
    Par trungsi dans le forum Langage SQL
    Réponses: 14
    Dernier message: 04/03/2005, 12h29

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