Vous n'êtes pas identifié(e).

#1 Re : Général » Requete SELECT step by step » 07/05/2020 00:59:08

Whaaoooouuuu !
Merci, merci, merci ;-)
Super tuto !

Non seulement, je viens de découvrir la notion et l'utilisation du fenêtrage, mais en plus j'ai découvert des syntaxes que je ne pensais pas pouvoir faire... Bref !

Juste une dernière question : que signifie le "s" dans "s group by rn/3 order by rn/3;" ???
J'ai du mal à comprendre sa signification... Je comprend bien le GROUP BY et ORDER BY que j'utilise de temps en temps, mais c'est le "s" (qui pourrait être un a/b/c/d/...), je ne vois pas pourquoi et si bien sur on ne le met pas, la requête échoue.

Merci encore pour tes lumières,


Thierry

#2 Re : Général » Requete SELECT step by step » 05/05/2020 23:52:08

dverite a écrit :

Les fonctions de fenêtrages correspondent à ce besoin.

Voir https://docs.postgresql.fr/10/tutorial-window.html

Merci pour la piste...
Cela semble pouvoir me laisser trouver une solution, je ne sais pas encore comment, mais une fois tout lu, peut être que j'y verrais plus clair ;-)

La seule chose par contre que je ne vois pas pour l'instant, c'est comment je vais pouvoir rassembler mes éléments : si je veux prendre les lignes de 13:00 à 13h03 uniquement pour calculer ma première moyenne et pas la ligne 13:04, j'ai encore à creuser :-(

#3 Général » Requete SELECT step by step » 05/05/2020 20:52:29

azimut2000
Réponses : 5

Bonjour,

Je ne sais pas si je suis dans le bon forum, mais je tente ma question...

Je me suis lancé dans l'écriture d'une application qui présente des graphiques de chiffres récoltés par un batch et stocké dans une base PostgreSQL...

Je me retrouve à devoir écrire un certain nombre de requête SQL, chose que j'arrive à faire sans trop de problème, mais j'arrive à un point ou je bloque... Voici ma problématique :

Je possède une TABLE avec plusieurs colonnes décrivant une date, une heure et différentes données d'un item par colonne.
Pour afficher mon graphique, j'aurais besoin de ne prendre qu'une ligne sur 3 par exemple, avec pour retour dans ma requête SELECT, un retour de la date et de l'heure et au niveau données, une moyenne des 3 valeurs d'une donnée / d'une colonne. Voici un exemple :

Ma TABLE ressemble à cela :

date           | heure      |  user   |  nice  |  system
03/05/2020 | 13:00:00 | 2        |  2      |  5
03/05/2020 | 13:01:00 | 5        |  2      |  3
03/05/2020 | 13:02:00 | 6        |  2      |  2
03/05/2020 | 13:03:00 | 4        |  2      |  2
03/05/2020 | 13:04:00 | 3        |  2      |  5

Je souhaite prendre une valeur de retour d'une valeur sur 3:

-> Via une requête de type SELECT heure, user FROM matable, avoir un retour de ce type : 'heure' qui renvoi '13:02:00', 'user' renvoie la moyenne de la ligne 13:00 / 13h01 / 13h02 = (2+5+6)/3 = 4.33... Idem pour les autres colonnes comme "nice" ou "system"

J'ai déjà posé la question à des DBA mais pas beaucoup de solution trouvée.... Je suis en Postgres 10 et je code en PHP... mais tout cela n'a que peu d'importance pour trouver une solution à mon problème ;-)

Quelqu'un aurait il une idée comment je pourrais écrire une requête qui me fasse ce genre de sortie ?

Merci à tous,

Thierry

Pied de page des forums

Propulsé par FluxBB