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

SQL Oracle Discussion :

calcul de la densité avec deux requètes select count


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut calcul de la densité avec deux requètes select count
    bonsoir tout le monde,
    je fait un programme qui me calcule la densité des attribts. densité =nombre des valeurs non nulles sur le total des valeurs dans une table.
    pour calculer le nombre de valeurs d'un champ on utilise biensur selec count(nom champ).
    je veux calculer directement la densité mais je connais pas la syntaxe; est ce que c'est la suivante?
    (select count(nom champ) where champ <> ' ')/(select count(nom champ));
    est ce que c'est juste cette requète? svp corrigez moi cette requète.
    Merci

  2. #2
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut Bonjour,
    Je m'y prendrais de la façon suivante (peut être pas la plus élégante)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    SELECT COUNT(FERIE) AS NB, 
    COUNT(*) AS NBTOTAL,
    (COUNT(FERIE) / COUNT(*)) AS DENSIT 
    FROM UTIL.ANNEEJOURS 
    
    on obtient :
    NB NBTOTAL DENSIT
    41 1825 0.0224657534246575

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Je pense que c'est le plus simple en effet.


    Attention 080983, NULL n'est jamais =,<>, <, >, ... à quelque chose.
    Toujours utiliser IS NULL ou IS NOT NULL

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    BONJOUR,
    vraiment c très gentil de votre part.
    svp dites moi comment chercher tous les valeurs non nulles de ma table. la table contient bp de champs.

  5. #5
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Déja traité !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    SALUT,
    ben je trouve pas, svp essayez de me répondre sinon donnez moi le lien ou je peux trouver une réponse.
    Merci c gentil.

  7. #7
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Rechercher 'all_tab_columns' dans le forum ORACLE et s'inspirer des (nombreux) exemples

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    tous ce que j'ai trouvé ne répond pas a ce que je cherhche.
    je cherche une requète me calcule le nombre de valeurs not null dasn une table. je connai calculer le nombre de vaaleurs not nulles d'un champ mais je veux de toute la table.
    stp essaye de me ré"pondre plus clairement, essayez de fournir un peu d'effort pour m'aider j'en serais reconnaissante, je suis un peu pressée, je dois terminer mon travail aujourd'hui.
    Merci pour vous.

  9. #9
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Moi aussi, j'ai du boulot !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    C Gentil De Votre Part;

  11. #11
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 	SUM(DECODE(client, NULL, 0, 1)) AS cl_OUI,
    		SUM(DECODE(client, NULL, 1, 0)) AS cl_NON,
    		SUM(DECODE(nom, NULL, 0, 1)) AS nom_OUI,
    		SUM(DECODE(nom, NULL, 1, 0)) AS nom_NON,
    		SUM(DECODE(adr1, NULL, 0, 1)) AS adr1_OUI,
    		SUM(DECODE(adr1, NULL, 1, 0)) AS adr1_NON
    FROM fclient
    WHERE ste = 1
     
    CL_OUI	CL_NON	NOM_OUI	NOM_NON	ADR1_OUI ADR1_NON
    55418	0	55415	3	53798	1620

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    C VRAIMENT GENTIL McM
    MERCI BP JE V TESTER ET JE V TE DIRE APRES;

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    Resalut

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    Pardon, j'ai pressé entré sans terminer mon message.
    est ce que tu peux me dire stp MCM c koi la signification de chaosue champ que tu met: client, 0, 1, NULL AS Cli_oui , ..... et ste=1.
    Merci

  15. #15
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut Votre avis
    N'obtient on pas l'info recherchée avec
    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
    1) ANALYZE TABLE ANNEEJOURS COMPUTE STATISTICS FOR ALL COLUMNS;
     
    puis
    2)
    SELECT 
    Z.NBNULL, 
    Z.NBCOLUMNS, 
    Z.NBLIGNES, 
    (Z.NBLIGNES * Z.NBCOLUMNS) AS NBDATA, 
    ((Z.NBLIGNES * Z.NBCOLUMNS) - Z.NBNULL) / (Z.NBLIGNES * Z.NBCOLUMNS) AS DENSITE
    FROM 
    (SELECT A.TABLE_NAME, A.NUM_ROWS AS NBLIGNES, count(B.COLUMN_NAME)AS NBCOLUMNS, sum(B.NUM_NULLS) AS NBNULL 
    FROM USER_TAB_COLUMNS B, USER_TABLES A
    WHERE A.TABLE_NAME = B.TABLE_NAME
    AND A.TABLE_NAME = 'ANNEEJOURS'
    GROUP BY A.TABLE_NAME, A.NUM_ROWS)
    sur une table ANNEEJOURS comportant des NULL dans le champ FERIE
    on obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NBNULL NBCOLUMNS NBLIGNES NBDATA DENSITE
    1784    12              1825        21900    0.918538812785388

  16. #16
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Non, car ce sont des données mises à jour par les stats.
    Si elles sont passées il y a 2 jours, c'est pas bon.

  17. #17
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut Statistiques
    Et ma ligne 1) elle sert à quoi ?
    Evidemment qu'il faut préalablement lancer une analyse complète des tables à étudier ...

    Mais vous ne croyez tout de même pas qu'on se lève chaque matin en disant tiens je vais aller jeter un coup d'oeil à la densité de mes tables ...

    Faites l'essai sur une table ...

  18. #18
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Ah oui, j'avais pas vu la ligne 1.

    Mais pour l'utilisation de la densité et la fréquence. Aucune idée.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    BONJOUR,
    non malhureusement,
    j'obtient pa ce que je cherche.
    j'ai dans ma table 15 champ, et dans mon shéma 5 tables je veux savoir la desnité de chaue table et ensuite la densité moyenne du schéma.
    donc je cherche a savoir le nombre de valeurs non nulles dans toute la table pas dans chaque champ.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Points : 47
    Points
    47
    Par défaut
    bonjour,
    non makheuresement c pas c eque je cherche.
    j'ai 15 champ dans la table , et j'ai un shéma qui contient 5 tables je cherche a calculer la densité moyenne de tout le schéma en calculaln la densité de chaque table avant.
    donc je cherche commen calculer la densité de toute la table pas de chaque attribut.

Discussions similaires

  1. Problème avec expression Requête SELECT
    Par nomade333 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/10/2010, 02h56
  2. Réponses: 5
    Dernier message: 06/08/2008, 16h40
  3. Deux requêtes SELECT en une seule
    Par isitien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 07/05/2008, 20h08
  4. Incompatibilité de type avec une requête Select
    Par desilo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/04/2008, 17h45
  5. [SQL] Problème avec ma requête SELECT
    Par oranocha dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/10/2007, 16h11

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