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

VBA Access Discussion :

comment calculer le 80e percentile avec une requete Access ?


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut comment calculer le 80e percentile avec une requete Access ?
    Bonjour,
    j'ai besoin de clarification sur l'utilisation de la function ' TOP 80 percent' qu'on utilise ds une query access pour calculer le 80eme percentile d'une liste de valeurs ( ex: su un echantillon de 100 valeurs, on trie par ordre croissant et ca doit nous sortir celui qui est a la 80e position... c un peu la definition de la mediane sauf que ce n'est pas le 50eme mais le 80eme)

    j'ai utilise la query suivante:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TOP 80 PERCENT table.Score FROM table;


    en resultat j'ai la colomne 'score' qui n'est pas triee, le pointeur est sur le 1er champ, est- ce que ce champ est le 80eme percentile ?? je ne suis pas certaine, je suis meme un peu perdue !!

    Merci pour votre aide ;-)

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 641
    Points : 34 351
    Points
    34 351
    Par défaut
    salut,

    bienvenue sur DVP
    la méthode que je peux te proposer est la suivante :
    - utiliser un objet recordset
    - effectuer la requete select, avec l'ordonnancement que tu souhaites
    - compter le nombre de lignes retournées dans le recordset
    -aller à l'enregistrement qui correspond aux 80%

    Les propriétés et méthodes à utiliser :
    - RecordCount
    - MoveFirst, MoveLast, MOvePrevious et MoveNext éventuellement

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour sore,
    Citation Envoyé par sore Voir le message
    j'ai utilise la query suivante:

    SELECT TOP 80 PERCENT table.Score FROM table;

    en resultat j'ai la colomne 'score' qui n'est pas triee, le pointeur est sur le 1er champ, est- ce que ce champ est le 80eme percentile ??
    Il faudra vite utiliser le bon vocabulaire...

    Si tu travaille directement avec l'interface utilisateur d'Access, alors le résultat de l'exécution de la requête est affiché dans une fenêtre feuille de données, qui dans ton cas ne comporte qu'une colonne Score.
    Dans cette feuille de données sont affichées toutes les lignes correspondant aux percentiles 1 à 80.
    « le pointeur est sur le 1er champ... »
    Je pense que tu veux dire que dans la feuille de données, c'est la première ligne qui est active. Elle correspond au 1er percentile.

    C'est la dernière ligne qui correspond au 80ème percentile.

    Maintenant, si en fait tu travailles avec VBA, directement sur un Recordset, alors le 80ème percentile est la dernière ligne du Recordset à laquelle tu accèdes directement en exécutant la méthode MoveLast du Recordset.
    _

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    En réponse à jpcheck,
    Citation Envoyé par jpcheck Voir le message
    la méthode que je peux te proposer est la suivante :
    - utiliser un objet recordset
    - effectuer la requete select, avec l'ordonnancement que tu souhaites
    - compter le nombre de lignes retournées dans le recordset
    -aller à l'enregistrement qui correspond aux 80%
    Avec un Recordset DAO, il n'est pas nécessaire de compter.
    La propriété PercentPosition sait positionner l'enregistrement courant selon un pourcentage. _
    _

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Plutôt que des longs discours, voici un lien à tester.

    Amicalement,

    Philippe

Discussions similaires

  1. [MySQL] comment exporter avec une requete ?
    Par noobyyy dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/11/2010, 00h24
  2. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43
  3. Réponses: 5
    Dernier message: 26/01/2009, 13h43
  4. Comment faire une requete liée avec une requete ?
    Par DavidDeTroyes dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/04/2006, 13h18
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 16h02

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