Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Как сделать запрос mysql выбор всех максимум из группы с условиями

Практика




как сделать запрос mysql выбор всех максимум из группы с условиями?
есть 3 таблицы. есть выборка, но нужно выбрать все статьи с максимальными рейтингами из всех источников (категорий) одним mysql запросом

SELECT
mn2.max_r,mn.rating,
mn.*,mnc.news_category_name,
mnc.long_name,
u.username,
u.first_name,
u.last_name

FROM (

SELECT MAX( nnnn.rating) max_r FROM news nnnn

LEFT OUTER JOIN news_categories mnc1 ON mnc1.news_category_id = nnnn.news_category_id

WHERE (upper(mnc1.long_name) like upper('категория 1'))
AND nnnn.STATUS = 'published' AND (DAY(nnnn.news_date) = '1') AND (MONTH(nnnn.news_date) = '1') AND (YEAR(nnnn.news_date) = '2013')

GROUP BY id_source


) mn2
INNER JOIN news mn
ON ( mn2.max_r = mn.rating)


LEFT OUTER JOIN news_categories mnc ON mnc.news_category_id = mn.news_category_id
LEFT OUTER JOIN users u ON u.user_id = mn.author_id
WHERE mn.status = 'published' AND (upper(mnc.long_name) like upper('категория 1'))
AND ( DAY( mn.news_date ) = '1') AND ( MONTH ( mn.news_date ) = '1') AND ( YEAR ( mn.news_date ) = '2013')


GROUP BY id_source
ORDER BY rating DESC


первый вложенный запрс формирует все масимумы по условию но с неправильными номерами статей,
затем по нем проганяется join и выбираются правильные записи... совпадающими с масимумом, чтобы не учитывать повторяющтеся рейтинги или нулевые используются дважды GROUP BY id_source
создано: 2013-05-09
обновлено: 2021-01-11
272



Рейтиг 10 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных - MySql (Maria DB)

Термины: Базы данных - MySql (Maria DB)