MySQL Возврат Specifi c Даты - PullRequest
       5

MySQL Возврат Specifi c Даты

0 голосов
/ 17 марта 2020

У меня есть таблица, полная видео и идентификаторов видео. Некоторые из них имеют такой же заголовок, но размещены через несколько дней, как показано на скриншоте. Поэтому одно и то же видео имеет разные идентификаторы. Если мне нужно получить просмотры в течение 7 дней после первоначальной даты создания для каждого заголовка независимо от того, сколько повторных публикаций было сделано, как я могу исключить дополнительные дни, такие как последние 3 строки в моем сообщении? Поскольку дата создания - 5 января, в этом случае мне нужны только представления для 6, 7, 8, 9, 10, 11 и 12 января. Причина, по которой 5 января не является включительной, заключается в том, что видео обычно публикуется через один день после Даты создания.

В некоторых случаях у меня может быть 3 репоста в течение 7 дней после первоначальной Даты создания. В этом примере только 1 репост для того же видео.

Screenshot

1 Ответ

0 голосов
/ 18 марта 2020

Если вы используете MySQL 8.0, вы можете сделать окно min() для этого:

select *
from (
    select t.*, min(creation_date) over(partition by title) first_creation_date
    from mytable t
) t
where total_days <= first_creation_date + interval 7 days

В более ранних версиях вы можете использовать коррелированный подзапрос:

select t.*
from mytable t
where total_days <= (
    select min(creation_date) + interval 7 days
    from mytable t1
    where t1.title = t.title
)
...