@numb7

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

Как суммировать количество повторяющих значений в столбце и вывести количество в отдельном столбце?
Структура:
id, data_created, subject, number_id
1, 2022-10-11, 'Новая задача 1', 555
2, 2022-10-12, 'Новая задача 2', 555
3, 2022-10-12, 'Новая задача 4', 111
4, 2022-10-13, 'Новая задача 5', 222
5, 2022-10-14, 'Новая задача 7', 333

Итоговый результат:
id, data_created, subject, number_id, count()
1, 2022-10-11, 'Новая задача 1', 555, 2
2, 2022-10-12, 'Новая задача 2', 555, 2
3, 2022-10-12, 'Новая задача 4', 111, 1
4, 2022-10-13, 'Новая задача 5', 222, 1
5, 2022-10-14, 'Новая задача 7', 333, 1
  • Вопрос задан
  • 155 просмотров
Решения вопроса 3
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
WINDOW FUNCTIONS в PostgreSQL уже давно:
select
    t.*,
    count(*) over (partition by number_id)
from t order by id;


https://sqlize.online/sql/psql13/3d37b9a0fe32505b9...
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
Если вы имеете ввиду повторы в столбце number_id, то сделайте подзапрос:
SELECT id, data_created, subject, number_id,
          ( SELECT COUNT(*) FROM tb AS tbc WHERE tbc.number_id = tb.number_id ) AS number_count
  FROM tb

Либо сделайте соединение с запросом с нужной группировкой.
Ответ написан
Комментировать
Maksim_64
@Maksim_64
Data Analyst
SELECT A.id, A.data_created, A.subject,A.number_id, B.count
  FROM tablename A
       INNER JOIN (SELECT number_id, count(number_id) AS count
                     FROM tablename 
                    GROUP BY number_id) B ON A.number_id = B.number_id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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