0

I'm trying to obtain the average time of an "activity" in a moodle database, i am not an sql expert, but i have managed to get to the point showed in the picture, my question is if exists a way to obtain, first the timestamp/time difference (this "activity" does not have a starting time column like many others) by day and then sum them all to get the average of that activity , for the first i tried with the function 'EXTRACT()' and comparing the dates in the format "%Y-%m-%d" but only sums the first row where they are equal, by the way i have been doing this just by a sql statement, i know the existence of store procedures but my level of sql is not that high. Thanks in advance! data obtained so far

Data on table logs (the most important i think)

component action objecttable userid courseid timecreated
mod_quiz* viewed quiz_attempts 6 2 1645287525
mod_forum viewed forum 5 2 1645288525
core loggedout user 2 0 1645291745
mod_page viewed page 5 2 1645291955

Data i've trying to get:

Activity StartTime EndTime Total
forum 19:01 19:10 9 minute(s)
quiz 15:45 16:00 15 minute(s)
page ... ... ...
workshop ... ... ...

but so far i get to assort the data in a column

Time
2022-x-x h:m
....

but when i try to sum by day with the function EXTRACT() and trying to match the dates in a very long query it just get the first record. NOTE: * half of the "activities" were easy to calculate since they have a "timestart" and "timeend" columns but i can not figure out how to solve the ones that do not have a "timestart" column.

Dupo
  • 3
  • 3
  • Please don't post pictures of text. Show the table DLL, sample data, and expected output. thanks – OldProgrammer Feb 21 '22 at 01:30
  • It will be very difficult to get the end time for viewing an activity. The "viewed" time in the log is when a user goes to the activity page. But they could go to another page straight away. Also many users don't log out, so there's no guarantee of this being recorded in the log. – Russell England Feb 23 '22 at 16:08

0 Answers0