У меня следующий запрос MySQL:
SELECT concat('<a target="_new" href="%%WWWROOT%%/course/user.php?id=1&user=',
u.id,
'&mode=alllogs">',
u.firstname ,' ',
u.lastname,'</a>') AS Username,
count(*) AS logins ,
(SELECT count(*)
FROM mdl_log
WHERE userid = l.userid
GROUP BY userid) AS Activity
FROM mdl_log AS l
JOIN mdl_user AS u ON l.userid = u.id
WHERE action LIKE '%login%'
GROUP BY userid
ORDER BY Activity DESC
INTO OUTFILE '/tmp/Total_Logins_With_Total_Activity.txt';
Я хочу расширить это, чтобы получить результаты на основе диапазона данных, например, 365 дней.
Так что я думаю, что могу изменить вышеуказанный запрос, чтобы выбрать поле 'time' из таблицы mdl_logs и преобразовать его в дни (это метка времени unix), а затем выбирать только тогда, когда время находится в пределах последнего периода 365 дней. , Любая помощь приветствуется.
Таблица mdl_log имеет следующую структуру:
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| time | int(10) unsigned | NO | MUL | 0 | |
| userid | int(10) unsigned | NO | MUL | 0 | |
| ip | varchar(15) | NO | | | |
| course | int(10) unsigned | NO | MUL | 0 | |
| module | varchar(20) | NO | | | |
| cmid | int(10) unsigned | NO | MUL | 0 | |
| action | varchar(40) | NO | MUL | | |
| url | varchar(100) | NO | | | |
| info | varchar(255) | NO | | | |
+--------+------------------+------+-----+---------+----------------+
Таблица mdl_user выглядит следующим образом:
+---------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| auth | varchar(20) | NO | MUL | manual | |
| confirmed | tinyint(1) | NO | MUL | 0 | |
| policyagreed | tinyint(1) | NO | | 0 | |
| deleted | tinyint(1) | NO | MUL | 0 | |
| mnethostid | bigint(10) | NO | MUL | 0 | |
| username | varchar(100) | NO | | | |
| password | varchar(32) | NO | | | |
| idnumber | varchar(255) | NO | MUL | | |
| firstname | varchar(100) | NO | MUL | | |
| lastname | varchar(100) | NO | MUL | | |
| email | varchar(100) | NO | MUL | | |
| emailstop | tinyint(1) unsigned | NO | | 0 | |
| icq | varchar(15) | NO | | | |
| skype | varchar(50) | NO | | | |
| yahoo | varchar(50) | NO | | | |
| aim | varchar(50) | NO | | | |
| msn | varchar(50) | NO | | | |
| phone1 | varchar(20) | NO | | | |
| phone2 | varchar(20) | NO | | | |
| institution | varchar(40) | NO | | | |
| department | varchar(30) | NO | | | |
| address | varchar(70) | NO | | | |
| city | varchar(20) | NO | MUL | | |
| country | varchar(2) | NO | MUL | | |
| lang | varchar(30) | NO | | en_utf8 | |
| theme | varchar(50) | NO | | | |
| timezone | varchar(100) | NO | | 99 | |
| firstaccess | int(10) unsigned | NO | | 0 | |
| lastaccess | int(10) unsigned | NO | MUL | 0 | |
| lastlogin | int(10) unsigned | NO | | 0 | |
| currentlogin | int(10) unsigned | NO | | 0 | |
| lastip | varchar(15) | NO | | | |
| secret | varchar(15) | NO | | | |
| picture | tinyint(1) | NO | | 0 | |
| url | varchar(255) | NO | | | |
| description | text | YES | | NULL | |
| mailformat | tinyint(1) unsigned | NO | | 1 | |
| maildigest | tinyint(1) unsigned | NO | | 0 | |
| maildisplay | tinyint(2) unsigned | NO | | 2 | |
| htmleditor | tinyint(1) unsigned | NO | | 1 | |
| ajax | tinyint(1) unsigned | NO | | 1 | |
| autosubscribe | tinyint(1) unsigned | NO | | 1 | |
| trackforums | tinyint(1) unsigned | NO | | 0 | |
| timemodified | int(10) unsigned | NO | | 0 | |
| trustbitmask | int(10) unsigned | NO | | 0 | |
| imagealt | varchar(255) | YES | | NULL | |
| screenreader | tinyint(1) | NO | | 0 | |
+---------------+---------------------+------+-----+---------+----------------+