@atambalasi

Как получить максимальное количество повторяющихся записи для каждого юзера?

Есть таблица

id desc some_id user_id
1 aaa 222 4
2 ddd 222 4
3 rrr 333 5
4 ggg 404 4
5 mmm 333 5
6 uuu 602 5

Надо в результате SELECT получить
user_id    some_id   summ 
   4          222       2
   5          333       2

Т.е надо получить для каждого юзера где some_id повторяется при этом максимальную.
Вот мой SELECT
SELECT user_id, some_id COUNT(some_id) AS summ FROM table1 GROUP BY some_id  ORDER BY some_id DESC

Результате получаю
user_id     some_id   summ 
   4          222       2
   5          333       2
   4          404       1
   5         606        1

Как отбросить последние 2 записи. Пользователи и записи в таблице очень много(Больше 1млн.)
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
unitby
@unitby
Если не оптимизировано то к примеру наподобие этого

SELECT user_id, some_id, COUNT(some_id) AS summ 
FROM table1 
GROUP BY some_id 
HAVING summ = (
	SELECT MAX(sum1) FROM (
		SELECT COUNT(some_id) AS sum1 FROM table1 GROUP BY some_id) 
	AS t1)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitryVoronkov
@DmitryVoronkov
Python Developer
SELECT user_id, some_id, COUNT(some_id) AS summ FROM table GROUP BY user_id HAVING summ
Ответ написан
Ваш ответ на вопрос

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

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