Requête SQL : Tri par jour

Fermé
chaldeen Messages postés 12 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 20 février 2023 - 1 mai 2021 à 20:41
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 3 mai 2021 à 06:58
Bonjour,

Dans le cadre d'un projet, je possède cette structure de données (c'est tout à fait normal si les 2 tables de mesure ne sont pas reliées :

L'attribut date correspond au format 01-01-2015, à partir duquel j'avais préalablement ajouté une colonne jour qui m'affiche le jour de la semaine grâce à une fonction python.

J'aimerais maintenant réaliser une moyenne de comptage par jour de la semaine, puis ordonner par jour croissant 'Monday, Tuesday, etc',, ce que je n'arrive pas à faire.
La requête suivante classe par ordre alphabétique de jour, pas par ordre tout court. J'ai essayé la fonction DAYOFWEEK dans tous les sens, pas moyen non plus.
select jour, avg(mesures_quotidiennes.valeur)
from mesures_quotidiennes
inner join mesure on mesures_quotidiennes.date=mesure.date
group by jour
ORDER BY jour


Y aurait-il une fonction qui me permettrait ce tri, ou dois-je créer une nouvelle table avec une colonne n°_jour (ex : Monday --> 1...) qui me permettrait de réaliser ce tri.

Merci à vous !

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
1 mai 2021 à 21:09
bonjour,
peux-tu donner le type de chacun de tes champs?
peux-tu donner un exemple de ce que contiennent tes tables mesures_quotidiennes et mesure, ainsi que le résultat attendu?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
1 mai 2021 à 21:12
qu'as-tu essayé avec DAYOFWEEK?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
2 mai 2021 à 10:59
je pense que le champ jour doit être supprimé de la table.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
2 mai 2021 à 11:07
moi j'essaierais ainsi:
select DATENAME(WEEKDAY, date), DATEPART(WEEKDAY, date), avg(valeur)
from mesures_quotidiennes
group by DATENAME(WEEKDAY, date), DATEPART(WEEKDAY, date)
ORDER BY DATEPART(WEEKDAY, date)
0
chaldeen Messages postés 12 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 20 février 2023
2 mai 2021 à 19:39
Bonjour, oui voici les types de chaque champ :
 #   Column      Non-Null Count   Dtype  
--- ------ -------------- -----
0 id 567725 non-null int64
1 date 567725 non-null object
2 id_station 567725 non-null int64
3 valeur 565129 non-null float64
4 heure 530400 non-null object
5 type 660 non-null float64
6 jour 567725 non-null object


Voici le contenu de la table Mesure:


Et de la vue Mesures_quotidiennes :


J'obtiens ce message d'erreur lorsque je fais votre code :
SQL Error [42703]: ERREUR: la colonne « weekday » n'existe pas
Position : 17

Weekday correspondait-elle à une fonction ?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > chaldeen Messages postés 12 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 20 février 2023
2 mai 2021 à 21:21
quel logiciel utilises-tu?
0
chaldeen Messages postés 12 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 20 février 2023
2 mai 2021 à 23:02
Dans ces captures, DBeaver
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
3 mai 2021 à 06:41
Bonjour,
Et comme SGBD ? SqlServer ? Quelle version ?
Ou alors tu utilises autre chose ? Mysql ? PostgreSql ? autre ??
0
chaldeen Messages postés 12 Date d'inscription mardi 13 avril 2021 Statut Membre Dernière intervention 20 février 2023
3 mai 2021 à 06:57
Bonjour,
J'utilise PostGreSQL.
Merci à vous, cela change-t-il quelque chose concernant la requête ?
Merci
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
3 mai 2021 à 06:58
Vu que tu as posté dans sqlserver... Oui ca change beaucoup de choses !!

Je déplace donc ta question dans le bon forum !
0