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

Requêtes et SQL. Discussion :

Réduction d'enregistrements pour graphique


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut Réduction d'enregistrements pour graphique
    Bonjour à tous,

    cela fait quelques années que je n'ai pas touché à une bdd ... et j'ai quelques difficultés avec le sujet suivant :

    J'ai des tables contenant des enregistrements de grandeurs physiques en fonction du temps avec un échantillonnage trop élevé que j'aimerais donc réduire pour en afficher des courbes.

    J'ai essayé de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT First([NGM quad force].ID) AS ID, 
    Avg([Field2]-(SELECT Field2 AS Bas0 FROM [NGM quad force] WHERE ID=1)) AS CptBasRec,
    Avg([Field1]-(SELECT Field1 AS Ht0 FROM [NGM quad force] WHERE id=1)) AS CptHtRec,
    [CptHtRec]-[CptBasRec] AS Force
    FROM [NGM quad force]
    GROUP BY CLng([ID]/38);
    D'une part cette requête est trop longue sur une table de 2,5 millions d'enregistrements, j'imagine que ce ne doit pas être la méthode la plus propre ni la plus efficace ?

    D'autre part dans le cas précis je divise par 38 le nombre d'enregistrements pour que ça ne dépasse pas 65535 la limite max à priori d'un graphique dans un état, mais c'est trop et j'aimerais réduire d'un facteur 20 seulement et donc afficher la courbe sur deux pages si possible, mais je ne vois pas comment faire ?

    Toute aide à ces deux soucis est la bienvenue

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bonjour.

    je ferai une requête séparée pour
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Field2 AS Bas0 FROM [NGM quad force] WHERE ID=1
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Field1 AS Ht0 FROM [NGM quad force] WHERE id=1

    Et après j'utiliserai un jointure si possible ou alors un produit croisé si il n'y pas de jointure.
    Là tu exécute la requête à chaque enregistrement.

    Ensuite il vaut mieux éviter First() et utiliser Min().
    First le 1er enregistrement dans la table dans l'ordre physique où les enregistrements sont stockés pas forcément le 1er que tu vois à l'écran.

    Pour l'affichage, je pense que tu serais mieux avec Excel qui te permet BEAUCOUP plus de possibilités.
    Et parlant d'Excel tu voudras peut-être regarder les Power Tools (https://www.itprotoday.com/analytics...igence-toolbox) qui permettent de manipuler de gros volume de données.

    A+

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/10/2008, 01h43
  2. [MySQL] enregistrer un graphique pour tous les utilisateurs
    Par majong dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/07/2008, 18h04
  3. Etat : plusieurs enregistrements pour un meme champ
    Par b_steph_2 dans le forum Access
    Réponses: 21
    Dernier message: 02/02/2006, 13h21
  4. Librairies pour graphiques
    Par Fiquet dans le forum ASP
    Réponses: 7
    Dernier message: 09/11/2005, 01h02
  5. Comment enregistrer des graphiques pour le web?
    Par pepe2006 dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 21h08

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