Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос: группирjвка для MIN(dt) / 3 сообщений из 3, страница 1 из 1
15.12.2018, 17:30
    #39748420
linki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос: группирjвка для MIN(dt)
Есть таблица со статьями
articles:
autor_id INT, # id автора
...
vote SMALLINT, # оценка статьи -100..100
dt DATETIME. #дата добавления статьи

Нужно получить:
1. сколько привлечено новых авторов (новый автор - публикация первой статьи - MIN(dt)) в каждом месяце (группировка по году и месяцу).
2. тоже, но написавших более 3 статей (более 3 записей в таблице) и имеющих больше положительных оценок, чем отрицательных
/ что-то вроде COUNT(vote>0) - COUNT(vote<0) > 0 /



3. Самый сложный вопрос.
Эта же таблица имеет имеет id рубрик:
dir_id, subdir_id INT

И есть таблица авторов autors:
id INT, name INT.

Нужно получить рейтинг авторов - по количеству рубрик и подрубрик с максимальным vote.
Простыми словами - если упорядочить статьи в одной рубрике (dir_id, subdir_id) по vote DESC - выигрывает статья автора на первом месте (с максимальной оценкой vote). Нужно посчитать количество рубрик для каждого автора, где его статья заняла первое место.
...
Рейтинг: 0 / 0
15.12.2018, 20:40
    #39748456
linki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос: группирjвка для MIN(dt)
По первому пункту.

Это запрос у меня выводит количество авторов Вообще писавших статьи с группировкой по месяцам:
SELECT DATE_FORMAT(dt , '%m %Y') AS dt, COUNT(DISTINCT autor_id) AS n FROM articles GROUP BY YEAR(dt), MONTH(dt)

Нужно, чтобы выводил кол-во авторов, написавших Впервые (нужно увидеть тенденцию притока новых авторов).
...
Рейтинг: 0 / 0
15.12.2018, 20:47
    #39748459
linki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос: группирjвка для MIN(dt)
Первый вопрос вроде решил так:
SELECT DATE_FORMAT(dt , '%m %Y') AS dt, COUNT(DISTINCT autor_id) AS nn FROM (select MIN(dt) as dt, autor_id FROM articles GROUP BY autor_id) as `res` GROUP BY YEAR(dt), MONTH(dt)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос: группирjвка для MIN(dt) / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]