Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
804 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT tous les n enregitrements d'une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT tous les n enregitrements d'une table

n°2193028
quikdav
Posté le 05-06-2013 à 21:47:22  profilanswer
 

Bonjour
 
Je voudrais savoir s'il est possible de remonter par le biais d'un SELECT en MYSQL 1 valeur toutes les 10 valeurs..
 
Je m'explique. J'ai une table de relevés de température qui contient beaucoup de valeurs. Or je voudrais remonter qu'une valeur sur 10..
 
Un chart à la journée, c'est pertinent d'avoir des valeurs toutes les 10 minutes, sur 1 mois, 1 valeur sur 10 me conviendrait tout à fait
 
Merci d'avance

mood
Publicité
Posté le 05-06-2013 à 21:47:22  profilanswer
 

n°2193048
Soileh
Lurkeur professionnel
Posté le 06-06-2013 à 08:04:31  profilanswer
 

:hello: !
 
Je dirais que tout dépend déjà de ton SGDBR [:spamafote], et de tes colonnes présentes dans ta table.


---------------
And in the end, the love you take is equal to the love you make
n°2193052
Miagic
Posté le 06-06-2013 à 08:45:00  profilanswer
 

Je pense que tu devrais faire quelque chose comme ça :
 
 

SELECT TEMPERATURE, DATE, ...
FROM (SELECT TEMPERATURE, DATE, ..., ROWNUM AS NUM_LIG
      FROM (SELECT TEMPERATURE, DATE, ...
            FROM TABLE_TEMPERATURE
            WHERE ???
            ORDER BY DATE))
WHERE MOD(NUM_LIG,10) = 1


 
 
En gros dans la "première" requête, tu récupères tes données ordonnées (ORDER BY DATE), puis tu les re-sélectionnes en y apposant le ROWNUM (numéro de ligne) et enfin tu les re-sélectionnes en ne prennant que les lignes ayant un MODULO 10 qui soit égal à 1 (soient les lignes 1, 11, 21, 31, 41...)


---------------
Miagic
n°2193058
Oliiii
Posté le 06-06-2013 à 09:10:26  profilanswer
 

Point de vue perf tu devrais mettre les 1 valeur sur 10 dans une autre table, ca evitera au server de recalculer des choses identique a chaque fois.
 
Tu peux aussi faire des Avg des 10 valeurs, tu éviteras certaines aberations ou piques (si il y en a).

n°2193966
sltpaulo
Posté le 12-06-2013 à 14:07:17  profilanswer
 

Je pense que la moyenne est une bonne chose, après si tu cherches uniquement de la perf, si tu as une colonne "id" avec un AI, tu peux suivre la méthode de Miagic en faisant :

Code :
  1. SELECT ID,TEMPERATURE, DATE, ...
  2. FROM TABLE_TEMPERATURE
  3. WHERE MOD(ID,10) = 1

n°2193993
rufo
Pas me confondre avec Lycos!
Posté le 12-06-2013 à 16:27:34  profilanswer
 

Ca marche pas avec les ID s'il y a des suppressions, donc des trous dans la numérotation :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT tous les n enregitrements d'une table

 

Sujets relatifs
colonne dans une table SQLite androidCopie d'une table à une autre
Créer un menu qui liste les noms des champs d'une table mysqlModélisation table de correspondance
utilisation de select() / fd_set() et autres joyeusetés sous linuxAjouter un champ dans une table
Aide pour faire suivre un select case sur plusieurs cellulesSelect + rand unique
Générateur de chiffres à la suite d'une formuleCréer automatiquement des enrégistrements dans une table avec PL SQL
Plus de sujets relatifs à : SELECT tous les n enregitrements d'une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR