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

Oracle Discussion :

Compter les champs nulls


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 97
    Points
    97
    Par défaut Compter les champs nulls
    Bonjour,

    Dans une requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select count(distinct monChamp) over (Partition by maReference) from maTable
    existe t'il un moyen de compter un eventuel monChamp null? Il semble en effet qu'il ne soit pas compté par défaut alors qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select maReference,count(select distinct monChamp from maTable) from maTable group by maReference
    compte un champs null comme un champ

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Ca m'étonnerait que votre seconde requête fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with matable as
    (
        select 1 id from dual union all
        select 2 from dual union all
        select null from dual
    )
    select
        count(*) c,
        count(distinct id) d,
        count(select distinct id from matable) t
    from
        matable
    ************************************
    ORA-00936: expression absente
    Mais grosso-modo oui, count(*) compte tous les champs, count(<unecolonne>) compte toutes les valeurs non-nulles de la colonne, c'est le fonctionnement normal et attendu.

  3. #3
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Tu peux faire utiliser NVL dans le count pour transformer le champ null en autre chose.
    Cordialement,
    Franck.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 97
    Points
    97
    Par défaut
    @Waldar: effectivement ma seconde requête n'est pas correcte, j'ai mal rentré le code, c'est tout simplement une requête count() sur un ensemble groupé... il n'y a pas besoin du deuxième select.

    @Pachot NVL fonctionne bien, merci pour votre aide.

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

Discussions similaires

  1. Comment compter les champs identiques
    Par domik dans le forum Access
    Réponses: 6
    Dernier message: 28/01/2007, 20h26
  2. mettre des Zero a tous les champ null d'un coup
    Par LesLemmings dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2006, 09h34
  3. SQL : compter les champs d'une table
    Par Bboy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/10/2005, 16h02
  4. afficher les champs null de deux tables dans un select
    Par poil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/09/2005, 15h05
  5. [c#] Compter les champs d'un DataReader
    Par elendila dans le forum ASP.NET
    Réponses: 20
    Dernier message: 10/08/2005, 15h33

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