Как получить специфическую матрицу с учетом трех параметров?

Добрый день,

имеются 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. Посты и их кол-во.

Подскажите пожалуйста с формированием алгоритма по новому варианту!
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы