Генерируйте гистограмму на основе количества строк с ассоциациями, число которых превышает один в день за период времени - PullRequest
0 голосов
/ 28 сентября 2018

Извините за запутанный заголовок, но я не совсем знаю, как сформулировать запрос, который я пытаюсь сгенерировать, и я озадачен тем, как это сделать.Скажем, у меня есть таблица 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+ активных дней в прошлом месяце.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...