powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по group by одним запросом
2 сообщений из 2, страница 1 из 1
Подскажите по group by одним запросом
    #39250596
Добрый день.

Предположим есть таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
id1    id2    id2_sum  id_3  id_4  sum
7      1      200      1     1	   1
7      1      200      2     1	   2
7      1      200      3     1	   4
7      1      200      2     2	   3
7      2      300      2     1	   2
7      2      300      1     1	   1
7      2      300      2     2	   3
8      1      700      2     2	   3


Можно ли одним запросом вывести:

Код: sql
1.
2.
3.
id1 sum(id2_sum)  sum(sum)
7   500           16
8   700           3



Группировка идет по id1, а внутри нужно понимать что суммировать нужно только суммы с уникальными id2, суммы для поля sum нужно брать все.

Другими словами можно ли такой запрос сделать одним select'ом?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
with group_sums as(
    select id1, sum(id2_sum)/count(id2) as id2_sum, sum(sum) as sum
    from test
    group by id1, id2
)
select id1, sum(id2_sum), sum(sum)
from group_sums
group by id1



Спасибо.
...
Рейтинг: 0 / 0
Подскажите по group by одним запросом
    #39250605
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Вейник,

А ваш WITH запрос — он и есть “один” запрос.

Не совсем понимаю что значит “только суммы с уникальными id2”, возможно так (только если id2 коррелирует с id2_sum, как в примере):
Код: sql
1.
2.
3.
SELECT id1, sum(DISTINCT id2_sum), sum(sum)
  FROM group_sums
 GROUP BY id1;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по group by одним запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]