Извините за запутанный заголовок, но я не совсем знаю, как сформулировать запрос, который я пытаюсь сгенерировать, и я озадачен тем, как это сделать.Скажем, у меня есть таблица websites
, в которой есть столбцы id
, domain
и created_at
.У меня есть другая таблица, visitors
, которая имеет столбцы id
, website_id
, created_at
.
Я пытаюсь определить, какие веб-сайты были созданы более месяца назад и у которых был хотя бы один посетитель в прошлом месяце ,как я могу сгруппировать сайты по количеству дней в прошлом месяце, когда у них был один или несколько посетителей?
Я пытаюсь сгенерировать гистограмму с осью x количество дней хотя бы с одним посетителемв прошлом месяце (так будет 1-30), а также по оси Y # сайтов в таблице, у которых было такое количество дней хотя бы с одним посетителем.
Вот некоторые примеры данных с тем, чтоЯ ищу, чтобы:
Веб-сайты
╔════╤═══════════════════╤════════════╗
║ id │ domain │ created_at ║
╠════╪═══════════════════╪════════════╣
║ 1 │ example.com │ 9-28-2018 ║
╟────┼───────────────────┼────────────╢
║ 2 │ google.com │ 1-1-2018 ║
╟────┼───────────────────┼────────────╢
║ 3 │ test.com │ 2-1-2018 ║
╟────┼───────────────────┼────────────╢
║ 4 │ amazon.com │ 3-1-2018 ║
╟────┼───────────────────┼────────────╢
║ 5 │ stackoverflow.com │ 1-2-2013 ║
╚════╧═══════════════════╧════════════╝
Посетители
╔════╤════════════╤════════════════════════════╗
║ id │ website_id │ created_at ║
╠════╪════════════╪════════════════════════════╣
║ 1 │ 1 │ 2018-09-15 01:34:07.917448 ║
╟────┼────────────┼────────────────────────────╢
║ 2 │ 2 │ 2018-09-28T17:51:35+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 3 │ 2 │ 2018-09-28T17:50:35+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 4 │ 2 │ 2018-09-28T17:51:21+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 5 │ 2 │ 2017-11-15 01:34:07.917448 ║
╟────┼────────────┼────────────────────────────╢
║ 6 │ 3 │ 2018-09-14T17:50:08+50:00 ║
╟────┼────────────┼────────────────────────────╢
║ 7 │ 4 │ 2018-09-15T16:50:01+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 8 │ 4 │ 2018-09-15T16:50:09+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 9 │ 4 │ 2018-09-16T16:50:10+32:00 ║
╟────┼────────────┼────────────────────────────╢
║ 10 │ 4 │ 2018-09-04T09:50:09+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 11 │ 5 │ 2017-11-15 01:34:07.917448 ║
╟────┼────────────┼────────────────────────────╢
║ 12 │ 5 │ 2018-09-06T09:50:09+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 13 │ 5 │ 2018-09-07T09:50:07+12:00 ║
╟────┼────────────┼────────────────────────────╢
║ 14 │ 5 │ 2018-09-08T09:50:02+40:00 ║
╟────┼────────────┼────────────────────────────╢
║ 15 │ 5 │ 2018-09-09T09:50:19+23:00 ║
╟────┼────────────┼────────────────────────────╢
║ 16 │ 5 │ 2018-09-10T09:50:12+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 17 │ 5 │ 2018-09-10T09:50:06+00:00 ║
╟────┼────────────┼────────────────────────────╢
║ 18 │ 6 │ 2018-09-02T09:50:01+18:00 ║
╟────┼────────────┼────────────────────────────╢
║ 19 │ 6 │ 2018-09-03T09:50:02+47:00 ║
╟────┼────────────┼────────────────────────────╢
║ 20 │ 6 │ 2018-09-04T09:50:07+13:00 ║
╚════╧════════════╧════════════════════════════╝
Вывод
╔═════════════════════════════════════╤════════════════════╗
║ Number of Active Days in Last Month │ Number of Websites ║
╠═════════════════════════════════════╪════════════════════╣
║ 0 │ 0 ║
╟─────────────────────────────────────┼────────────────────╢
║ 1 │ 2 ║
╟─────────────────────────────────────┼────────────────────╢
║ 2 │ 0 ║
╟─────────────────────────────────────┼────────────────────╢
║ 3 │ 2 ║
╟─────────────────────────────────────┼────────────────────╢
║ 4 │ 0 ║
╟─────────────────────────────────────┼────────────────────╢
║ 5 │ 1 ║
╟─────────────────────────────────────┼────────────────────╢
║ 6 │ 0 ║
╚═════════════════════════════════════╧════════════════════╝
Объяснение
- Ни один из сайтов не имел посетителей в прошлом месяце.
- Веб-сайты 2 и 3 каждыйбыл один активный день за последний месяц.Веб-сайт 1 также работал, но он исключен, поскольку он также был создан в течение последнего месяца.
- Ни у одного веб-сайта не было двух активных дней в прошлом месяце.
- Веб-сайты 4 и 6 имели по 3 активныхдней в прошлом месяце.
- На веб-сайте 5 было 5 активных дней.
- На веб-сайтах не было 6+ активных дней в прошлом месяце.