Добрый день,
имеются 3 таблицы:
posts,
-----
id
name
created_at
tags
------
id
name
post_tag
------
id
name
created_at
Необходимо получить матрицу активности загружаемых тегов на кол-во файлов срезом за три последних месяца от меньшего кол-ва тегов 1 к наибольшему:
$out = [
// Кол-во обавленных тегов, февраль.2018(кол-во постов), январь.2018(кол-во постов), дек.2017(январь.2018(кол-во постов))
['tags_cnt' => 1, 'm1' => 61, 'm2' => 75, 'm3'=>50],
['tags_cnt' => 2, 'm1' => 20000, 'm2' => 25000, 'm3'=>20000],
['tags_cnt' => 3, 'm1' => 75, 'm2' => 1000, 'm3'=>4000],
['tags_cnt' => 4, 'm1' => 82, 'm2' => 4000, 'm3'=>8000],
['tags_cnt' => 5, 'm1' => 70, 'm2' => 72, 'm3'=>70],
['tags_cnt' => 6, 'm1' => 53, 'm2' => 60, 'm3'=>54],
['tags_cnt' => 7, 'm1' => 60, 'm2' => 52, 'm3'=>78],
['tags_cnt' => 8, 'm1' => 62, 'm2' => 76, 'm3'=>76],
['tags_cnt' => 9, 'm1' => 59, 'm2' => 63, 'm3'=>69],
['tags_cnt' => 10, 'm1' => 54, 'm2' => 83, 'm3'=>75],
['tags_cnt' => 11, 'm1' => 87, 'm2' => 91, 'm3'=>78],
['tags_cnt' => 12, 'm1' => 73, 'm2' => 91, 'm3'=>56],
['tags_cnt' => 13, 'm1' => 97, 'm2' => 93, 'm3'=>95],
['tags_cnt' => 14, 'm1' => 63, 'm2' => 50, 'm3'=>89],
['tags_cnt' => 15, 'm1' => 95, 'm2' => 88, 'm3'=>87],
['tags_cnt' => 16, 'm1' => 76, 'm2' => 64, 'm3'=>85],
['tags_cnt' => 17, 'm1' => 53, 'm2' => 93, 'm3'=>56],
['tags_cnt' => 18, 'm1' => 68, 'm2' => 77, 'm3'=>61],
['tags_cnt' => 19, 'm1' => 77, 'm2' => 57, 'm3'=>62],
['tags_cnt' => 20, 'm1' => 95, 'm2' => 95, 'm3'=>77],
];
Раннее получал матрицу вида -
[
['month'=>'Feb', 'tags_cnt'=>5],
['month'=>'Jan', 'tags_cnt'=>20],
...
]
Проблем не возникло, алгоритм был следующим:
1. Получение массива месяцев
2. Обход (1.) с select запросом по соответствию года и месяца
Но в новом варианте нужно еще учитывать
1. Градацию новых добавленных тегов от 1 до максимального за период (в 1 пункт: Пр - 1,2,3,4....max)
2. Посты и их кол-во.
Подскажите пожалуйста с формированием алгоритма по новому варианту!