Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
J'essaie d'analyser le temps travaillé de différents collaborateurs. Pour vous expliquer rapidement j'ai une table main_courante dans laquelle je dispose des heures de connexions (main_type = 200) et de déconnexions (main_type=201)des personnes.
J'aimerais pouvoir additionner toutes les fois où la personne s'est connectée puis déconnectée pour avoir son temps de connexion sur une journée.
Je parviens à faire l'addition du max et du minimum mais je ne parviens pas à faire la somme des temps entre chaque connexion et déconnexion...
L'idée est de créer une mesure dans mon application et non directement dans le script.
Voici un exemple ci-dessous!:
| MAIN_DATE_DEBUT | MAIN_USER | MAIN_TYPE | MAIN_TYPE_LIBELLE |
| 30/06/2022 01:39:43 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 01:39:50 | 22566477 | 201 | Déconnexion utilisateur |
| 30/06/2022 01:41:19 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 01:42:22 | 22566477 | 201 | Déconnexion utilisateur |
| 30/06/2022 01:49:21 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 01:49:53 | 22566477 | 201 | Déconnexion utilisateur |
| 30/06/2022 01:59:25 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 02:08:15 | 22566477 | 201 | Déconnexion utilisateur |
| 30/06/2022 02:08:18 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 05:58:59 | 22566477 | 201 | Déconnexion utilisateur |
| 30/06/2022 05:59:05 | 22566477 | 200 | Connexion utilisateur |
| 30/06/2022 06:02:33 | 22566477 | 201 | Déconnexion utilisateur |
Pour l'exemple ci-dessus j'aimerais par exemple trouver le résultat 4:04:41..
Merci d'avance pour votre aide!
Bonne fin de journée,
Etienne
as below
temp:
load
timestamp#(MAIN_DATE_DEBUT,'DD/MM/YYYY hh:mm:ss') as MAIN_DATE_DEBUT
,MAIN_USER
,MAIN_TYPE
,MAIN_TYPE_LIBELLE
inline [
MAIN_DATE_DEBUT,MAIN_USER,MAIN_TYPE,MAIN_TYPE_LIBELLE
30/06/2022 01:39:43,22566477,200,User login
30/06/2022 01:39:50,22566477,201,User logout
30/06/2022 01:41:19,22566477,200,User login
30/06/2022 01:42:22,22566477,201,User logout
30/06/2022 01:49:21,22566477,200,User login
30/06/2022 01:49:53,22566477,201,User logout
30/06/2022 01:59:25,22566477,200,User login
30/06/2022 02:08:15,22566477,201,User logout
30/06/2022 02:08:18,22566477,200,User login
30/06/2022 05:58:59,22566477,201,User logout
30/06/2022 05:59:05,22566477,200,User login
30/06/2022 06:02:33,22566477,201,User logout
];
NoConcatenate
fact:
Load * ,if(MAIN_TYPE_LIBELLE='User logout' and MAIN_USER=peek('MAIN_USER') ,interval(MAIN_DATE_DEBUT-Peek('MAIN_DATE_DEBUT'),'H:mm:ss')) as loginDuration
Resident temp
Order by MAIN_USER,MAIN_DATE_DEBUT ASC;
drop table temp;
exit Script;
Merci pour votre aide.
J'ai oublié de préciser que dans mon tableau il y a d'autres MAIN_TYPE et d'autres MAIN_USER.
Je vous mets une capture d'un exemple de résultat ciblé:
| MAIN_DATE_DEBUT | MAIN_USER | MAIN_TYPE | MAIN_TYPE_LIBELLE | DUREE_CONNECTION |
| 01/07/2022 07:47:37 | 29151691 | 200 | Connexion utilisateur | |
| 01/07/2022 08:18:55 | 29151691 | 1 | Consigne lue | |
| 01/07/2022 08:39:46 | 29151691 | 1 | Consigne lue | |
| 01/07/2022 08:40:25 | 13216513 | 200 | Connexion utilisateur | |
| 01/07/2022 08:47:50 | 29151691 | 123 | Création post it | |
| 01/07/2022 08:48:00 | 13216513 | 127 | Audio ok | |
| 01/07/2022 09:10:27 | 29151691 | 1 | Consigne lue | |
| 01/07/2022 09:10:33 | 29151691 | 1 | Consigne lue | |
| 01/07/2022 09:13:25 | 29151691 | 201 | Déconnexion utilisateur | 1:25:48 |
| 01/07/2022 09:24:06 | 29151691 | 123 | Création post it | |
| 01/07/2022 09:24:39 | 13216513 | 201 | Déconnexion utilisateur | 0:44:14 |
| 01/07/2022 09:25:02 | 29151691 | 1 | Consigne lue | |
| 01/07/2022 09:41:43 | 29151691 | 123 | Création post it |
Merci beaucoup pour votre aide.
Bonne journée,
Etienne