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 :

count(cleprim) et count(*)


Sujet :

Langage SQL

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 66
    Par défaut count(cleprim) et count(*)
    Bonjour,

    Soit une table dont plusieurs champs sont clés primaires :

    Quelle différence faites vous entre un count sur un des deux champs(cléprimaire) et un count(*) ?

    Est-ce que j'aurais le même résultat?

    Cordialement,
    Chris

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Bonjour,

    Il me semble que tu obtiendras le même résultat avec un count(cle1) qu'avec un count(*).

    Cependant, il reste possible de faire un count(distinct cle1) afin d'obtenir le nombre de cle1 différents

  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
    22 039
    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 : 22 039
    Billets dans le blog
    6
    Par défaut
    COUNT peut se combiner de différentes manières :

    1) COUNT(ALL colonne) => compte toutes les occurrences (donc pas les marqueurs NULL)
    NOTA : COUNT(colonne) est équivalent à COUNT(ALL colonne)
    2) COUNT(DISTINCT colonne) => compte toutes les occurrences distinctes (donc ni les marqueurs NULL ni les doublons)
    3) COUNT(*) => compte les lignes

    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/ * * * * *

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Ah oui les valeurs NULL, merci SQLpro pour la précision que j'avais omise !

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 66
    Par défaut
    Merci

    donc pour conclure
    le count(cleprim) = count(*) puisqu'un champ clef primaire ne peut avoir de valeur nulle.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 039
    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 : 22 039
    Billets dans le blog
    6
    Par défaut
    exact, mais le count(cleprim) sera plus couteux.
    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/ * * * * *

Discussions similaires

  1. [SQL2005] COUNT(CASE THEN (COUNT DISTINCT)) ?
    Par apnw7931 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2013, 15h08
  2. COUNT total et COUNT "conditionnel"
    Par MrBoo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/08/2011, 16h15
  3. Question bête... Count(1) ou count(*) ?
    Par tryton dans le forum SQL
    Réponses: 24
    Dernier message: 19/11/2008, 16h11
  4. select * ou select count(*) ou select count(id)
    Par wjc dans le forum Requêtes
    Réponses: 12
    Dernier message: 19/12/2005, 19h00
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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