@kirill-93

MySQL. Как сгруппировать данные по 2 полям?

Помогите сгруппировать результат выборки. Posts - посты, Entities - авторы постов, Users - пользователи. Задача выбрать посты за определенный промежуток и отсортировать по количеству просмотров, и чтобы в выборке не было повторяющихся новостей и авторов.
select count('post_user.id') as total, `posts`.entity_id
from `posts` 
left join `post_user` on `post_user`.`post_id` = `posts`.`id` and `post_user`.`created_at` >= '2016-08-22' and `post_user`.`created_at` < '2016-08-29'
join entities on entities.id = posts.entity_id 
where `post_type` = 'youtube' and entities.type = 1
group by posts.id, entities.id
order by `total` desc 
limit 20

Этот запрос группирует по posts.id, то есть повты не повторяются, но не группирует по entities.id. Почему?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
idShura
@idShura
не группирует по entities.id. Почему?


Мне кажется ты не понимаеш как работает group by.
group by используется для того, чтобы объединять повторяющиеся значения в группы. В запросе ты указываешь group by posts.id, entities.id т.е. сначала группировка происходит по полую posts.id, а затем полученные группы делятся по полю entities.id

Покажи какую информацию выдает твой запрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
IQ Consultancy Санкт-Петербург
от 120 000 до 140 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
13 мая 2024, в 03:33
30000 руб./за проект
13 мая 2024, в 03:08
1500 руб./за проект
13 мая 2024, в 03:06
1500 руб./за проект