Подсчет вхождений различных значений при возврате различных значений

0

Подобно этому вопросу здесь MySQL: подсчет вхождения отдельных значений

Однако я хотел бы возвращать каждое отдельное вхождение строки, со счетом для имени. т.е.

ожидаемый результат:

id         name    count
-----      ------  ------
1          Mark    2
2          Mike    3
3          Paul    1
4          Mike    3
5          Mike    3
6          John    1
7          Mark    2

Я могу добиться этого с помощью подзапроса, но в моем конкретном примере есть сложный основной запрос для фильтрации результатов вниз, и я бы хотел избежать дублирования этого запроса для достижения правильных значений.

Теги:

1 ответ

1

Вы могли бы сделать что-то вроде

select a.*,b.cnt
from demo a
join (
  select name,count(*) cnt
  from demo
  group by name 
) b using(name)

Во внутреннем запросе вычисляйте счетчик для каждого пользователя, а затем выполняйте самосоединение с таблицей путем сопоставления имени и количества показаний из внутреннего запроса по каждой записи

демонстрация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню