powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посещаемость по дням
4 сообщений из 4, страница 1 из 1
Посещаемость по дням
    #39950640
SBS Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток
Есть три таблицы
mdl_cohort - Глобальные группы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE `mdl_cohort` (
  `id` bigint(10) NOT NULL AUTO_INCREMENT,
  `contextid` bigint(10) NOT NULL,
  `name` varchar(254) NOT NULL DEFAULT '',
  `idnumber` varchar(100) DEFAULT NULL,
  `description` longtext,
  `descriptionformat` tinyint(2) NOT NULL,
  `visible` tinyint(1) NOT NULL DEFAULT '1',
  `component` varchar(100) NOT NULL DEFAULT '',
  `timecreated` bigint(10) NOT NULL,
  `timemodified` bigint(10) NOT NULL,
  `theme` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `mdl_coho_con_ix` (`contextid`)
)



mdl_cohort_members - участники группы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE `mdl_cohort_members` (
  `id` bigint(10) NOT NULL AUTO_INCREMENT,
  `cohortid` bigint(10) NOT NULL DEFAULT '0',
  `userid` bigint(10) NOT NULL DEFAULT '0',
  `timeadded` bigint(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `mdl_cohomemb_cohuse_uix` (`cohortid`,`userid`),
  KEY `mdl_cohomemb_coh_ix` (`cohortid`),
  KEY `mdl_cohomemb_use_ix` (`userid`)
)



mdl_user_lastaccess - время доступа к странице курса
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE `mdl_user_lastaccess` (
  `id` bigint(10) NOT NULL AUTO_INCREMENT,
  `userid` bigint(10) NOT NULL DEFAULT '0',
  `courseid` bigint(10) NOT NULL DEFAULT '0',
  `timeaccess` bigint(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `mdl_userlast_usecou_uix` (`userid`,`courseid`),
  KEY `mdl_userlast_use_ix` (`userid`),
  KEY `mdl_userlast_cou_ix` (`courseid`)
)



Хотел узнать посещаемость по глобальным группам из БД системы MOODLE
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
-- группировка по дням
CREATE TEMPORARY TABLE `la`
SELECT userid, DATE_FORMAT(FROM_UNIXTIME(timeaccess),'%Y-%m-%d') lsdata FROM mdl_user_lastaccess
GROUP BY userid, lsdata;

-- Список
SELECT mdl_cohort.name as grp, la.lsdata, Count(la.userid) AS cnt
FROM la 
INNER JOIN (mdl_cohort_members INNER JOIN mdl_cohort ON mdl_cohort_members.cohortid = mdl_cohort.id) ON la.userid = mdl_cohort_members.userid
GROUP BY mdl_cohort.name, la.lsdata
ORDER BY mdl_cohort.name;



Получил результат

Код: plaintext
1.
2.
3.
4.
5.
6.
grp   |   lsdata    |   cnt
--------------------------------
grp-1 | 2020-04-01  |   5
grp-1 | 2020-04-02  |   3
grp-1 | 2020-04-08  |   8
grp-2 | 2020-04-03  |   4
grp-N | ........... |  ...

Теперь, как можно с помощью перекрестного запроса получить результат в виде:
Код: plaintext
1.
2.
3.
4.
5.
6.
       | 2020-04-01 | 2020-04-02 | 2020-04-03 | 2020-04-04 | .... | 2020-04-30
-------------------------------------------------------------------------------------
grp-1  |      5     |      3     |      0     |       0    |  ... |  .......
grp-2  |      0     |      0     |      4     |       0    |  ... |  .......
 ....  |     ...    |     ...    |     ...    |      ...   |  ... |  .......
grp-N  |     ...    |     ...    |     ...    |      ...   |  ... |  .......

плз, помогите, буду очень благодарен
заранее спасибо за ответ
...
Рейтинг: 0 / 0
Посещаемость по дням
    #39950671
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL не поддерживает PIVOT. Эмулируйте.
...
Рейтинг: 0 / 0
Посещаемость по дням
    #39950706
SBS Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если, количество столбцов известно, то можно решать
А у меня в этом ситуации не известно
...
Рейтинг: 0 / 0
Посещаемость по дням
    #39950721
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посещаемость по дням
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]