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 :

Bloqué sur fonction analytique


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut Bloqué sur fonction analytique
    Bonjour,

    je cherche le moyen de faire une requête avec deux fonctions analytique mais n'utilisant pas les mêmes valeurs...

    Voici un exemple concret.

    Je souhaite récupérer la moyenne des surfaces de logements ainsi que le prix moyen.

    J'ai donc fais (pour résumé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT type_bien, --maison, appartement
               type_transaction, --vente, location
               avg(surface_bien) over(partition by type_bien, type_transaction),
               avg(prix_bien) over over(partition by type_bien, type_transaction)
    FROM BIEN
    Le problème est que pour le prix_bien je souhaite exclure de mon calcul ceux qui sont égaux à 0€ mais pas pour le calcul de la surface.

    Merci d'avance

  2. #2
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    T'as essayé un FULL JOIN sur deux requête distinctes (Une pour les surfaces, l'autre pour les prix) ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    Oui ça marche évidemment bien avec ça.
    Je voulais juste savoir si il y avait un moyen plus pratique avec une requête

    Edit : merde rien à voir, je n'ai rien dit :p aurais-tu une explication sur le full join ?

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Pourquoi utilises-tu une fonction analytique et non une fonction d'agrégation ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    tu veux dire un AVG avec un group by ?

    ça reviendrait au même, non ?

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par shadeoner Voir le message
    tu veux dire un AVG avec un group by ?

    ça reviendrait au même, non ?
    Non. Les fonctions d'agrégation font des ... agrégations , pas les fonctions analytiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> select a, b, avg(n) over (partition by a, b) from t01;
    A B AVG(N)OVER(PARTITIONBYA,B)
    - - --------------------------
    a b                        1,5
    a b                        1,5
    b a                          4
     
    SQL> select a, b, avg(n) from t01 group by a,b;
    A B     AVG(N)
    - - ----------
    a b        1,5
    b a          4

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par shadeoner Voir le message
    pour le prix_bien je souhaite exclure de mon calcul ceux qui sont égaux à 0€
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    avg(nullif(prix_bien,0))

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    avg(nullif(prix_bien,0))
    ça marche niquel je pensais qu'en faisant ça je fausserais les stats

    (dans mon cas c'est un peu plus complexe j'ai utilisé un CASE)

    Danken !

Discussions similaires

  1. [XL-2010] Le moindre changement sur le fichier bloque les fonctions
    Par bob_le_chacal dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/09/2013, 11h44
  2. Bloqué sur la fonction index avec NB.si
    Par Richard3460 dans le forum Excel
    Réponses: 6
    Dernier message: 09/05/2012, 14h50
  3. [AC-2010] Bloqué sur fonction Buildcriteria
    Par fabaccess dans le forum VBA Access
    Réponses: 22
    Dernier message: 16/12/2010, 12h38
  4. Réponses: 4
    Dernier message: 12/05/2010, 17h30
  5. [BODI] Job bloqué sur une fonction smtp_to
    Par akela13th dans le forum Alimentation
    Réponses: 3
    Dernier message: 16/06/2009, 14h52

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