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

Тестовый данные:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table test (id integer, NAME varchar(10));

insert into test (id, name) values (1, 'x');
insert into test (id, name) values (1, 'x1');
insert into test (id, name) values (2, 'z');
insert into test (id, name) values (3, 'a');
insert into test (id, name) values (2, 'z1');
insert into test (id, name) values (2, 'z2');


select NAME, < количество колонок с id = 2 > from test where id = 2; 



Результат должен быть:

z 3
z1 3
z2 3

Есть такой вариант:
Код: plsql
1.
2.
3.
select NAME, 
(select count(*) from test where id = 2) as count_id
from test where id = 2; 



но не очень оптимальный.
Посоветуйте пож. другие варианты.
Спасибо за вашу помощь!
...
Рейтинг: 0 / 0
Помогите с запросом
    #38961998
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlindG,

если условие в подзапросе и основном запросе совпадают, то можно просто window функцией count:

Код: sql
1.
select name, count(*) over() as count_id from test where id = 2
...
Рейтинг: 0 / 0
Помогите с запросом
    #38962310
BlindG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexius, Большое спасибо! то что нужно
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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