Extraires heures de timestamp + calculs de moyenne sur résultat
phenetas
Messages postés
1108
Date d'inscription
Statut
Membre
Dernière intervention
-
phenetas Messages postés 1108 Date d'inscription Statut Membre Dernière intervention -
phenetas Messages postés 1108 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai plusieurs tables sur une base SQL :
Mon but est d'extraire les timstamp des evenements, et de voir en moyenne (résumé par heure de la journée par exemple) à quelle heure ces evenements arrivent en fonction du pays de la machine.
Ex :
table "event" (id | timestamp | id_machine)
1 | 2014-11-24 13:06:47 | A
2 | 2014-11-24 13:06:47 | A
3 | 2014-11-24 13:06:47 | B
4 | 2014-11-24 13:06:47 | C
table "machine" (pays | id_machine)
FR | A
US | B
IT | C
Pour cet exemple, mon but serait d'obtenir en sortie un tableau, qui montre par pays et par heure de la journée (de 0 à 24), le nombre d'evenements.
Comme ça, ensuite je pourrais extraire ce tableau et faire un affichage graphique depuis excel ou n'importe quel autre outil du genre.
heures / pays
______FR_____US______IT
0_____2______3_______2
1_____0______9_______3
2_____3______2_______1
[...]
22____4______3_______2
23____8______3_______4
24____2______3_______1
Ce que je ne sais pas faire et me pose problème :
1) Comment extraire facilement l'heure de la journée depuis un timestamp sous ce format : 2014-11-24 13:06:47 ?
2) Comme ça, de mon esprit débutant, je pense qu'il va falloir utiliser un JOIN pour croiser les 2 tables (la table des evenements et la table des machines). Mais je ne suis pas sur que ce soit la meilleure solution ?
Merci pour toute aide, qui sera accueillie avec plaisir.
J'ai plusieurs tables sur une base SQL :
- Une table enregistre des evenements qui se passent sur des machines, avec une colonnes "timestamp", et une colonnes "id_machine"
- Une table enregistre le pays des machines, avec une colonnes "id_machine" et une "pays"
Mon but est d'extraire les timstamp des evenements, et de voir en moyenne (résumé par heure de la journée par exemple) à quelle heure ces evenements arrivent en fonction du pays de la machine.
Ex :
table "event" (id | timestamp | id_machine)
1 | 2014-11-24 13:06:47 | A
2 | 2014-11-24 13:06:47 | A
3 | 2014-11-24 13:06:47 | B
4 | 2014-11-24 13:06:47 | C
table "machine" (pays | id_machine)
FR | A
US | B
IT | C
Pour cet exemple, mon but serait d'obtenir en sortie un tableau, qui montre par pays et par heure de la journée (de 0 à 24), le nombre d'evenements.
Comme ça, ensuite je pourrais extraire ce tableau et faire un affichage graphique depuis excel ou n'importe quel autre outil du genre.
heures / pays
______FR_____US______IT
0_____2______3_______2
1_____0______9_______3
2_____3______2_______1
[...]
22____4______3_______2
23____8______3_______4
24____2______3_______1
Ce que je ne sais pas faire et me pose problème :
1) Comment extraire facilement l'heure de la journée depuis un timestamp sous ce format : 2014-11-24 13:06:47 ?
2) Comme ça, de mon esprit débutant, je pense qu'il va falloir utiliser un JOIN pour croiser les 2 tables (la table des evenements et la table des machines). Mais je ne suis pas sur que ce soit la meilleure solution ?
Merci pour toute aide, qui sera accueillie avec plaisir.
A voir également:
- Extraires heures de timestamp + calculs de moyenne sur résultat
- Comment calculer la moyenne sur excel - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Lexer resultat - Télécharger - Sport
- Comment extraire une video de youtube - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum Excel
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir,
et ceci?
select hour(timestamp)ne fonctionne pas?
et ceci?
select hour(timestamp), pays, count(*) from event, machine where event.id_machine = machine.id_machine group by hour(timestamp), pays order by pays, hour(timestamp);
J'ai du m'embrouiller dans mes recherches car je n'étais pas tombé sur la fonction hour().
Concernant le FROM, je vois que tu cite les deux tables avec une virgule entre les deux.
Cette solution est bien plus simple que ce que je pensais (utiliser un JOIN). Du coup cela me mène à une question : dans quel cas un JOIN est-il préférable à la solution que tu m'as apportée ici ?
j'aurais pu écrire:
je pense que la base de données doit être assez intelligente pour traiter les deux requêtes de la même façon, donc je choisis de l'écrire de la façon la plus simple pour moi.
ceci t’intéressera peut-être : https://sqlpro.developpez.com/cours/sqlaz/jointures/
Je m'empresse de lire ce lien.
Merci ;)