powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Здравствуйте! Вопрос по использованию GROUP BY.
3 сообщений из 3, страница 1 из 1
Здравствуйте! Вопрос по использованию GROUP BY.
    #32032717
Peter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу сделать такой SELECT, чтобы одним из столбцов мне вернулось количество записей в группе, удовлетворяющих некоему условию, при этом в другом столбце должно быть количество записей без условий.

Видимо нужно использовать подзапрос. Подскажите, пожалуйста, как?

select C.FTK_CATHEDRA_NAME,
count(S.FTK_STUDENT_ID) as NUMBER,

(select count (*) from FTK_STUDENT S
inner join FTK_GROUP G on G.FTK_GROUP_ID = S.FTK_GROUP_ID
inner join FTK_CATHEDRA C on C.FTK_CATHEDRA_ID = G.FTK_CATHEDRA_ID
where S.FTK_SEX_ID = 2
group by C.FTK_CATHEDRA_NAME
) as WOMEN1,

from FTK_STUDENT S
inner join FTK_GROUP G on G.FTK_GROUP_ID = S.FTK_GROUP_ID
inner join FTK_CATHEDRA C on C.FTK_CATHEDRA_ID = G.FTK_CATHEDRA_ID
group by C.FTK_CATHEDRA_NAME

Такой вариант, естественно, возвращает ошибку (multiple rows in singleton select).

Видимо, нужно как-то использовать в подзапросе текущее FTK_CATHEDRA_NAME. Как к нему обратиться?
...
Рейтинг: 0 / 0
Здравствуйте! Вопрос по использованию GROUP BY.
    #32032735
Alexandr K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select C.FTK_CATHEDRA_NAME,
count(S.FTK_STUDENT_ID) as NUMBER,

(select count (*) from FTK_STUDENT S
inner join FTK_GROUP G on G.FTK_GROUP_ID = S.FTK_GROUP_ID
inner join FTK_CATHEDRA C on C.FTK_CATHEDRA_ID = G.FTK_CATHEDRA_ID
where S.FTK_SEX_ID = 2
AND C.FTK_CATHEDRA_NAME = CC.FTK_CATHEDRA_NAME <<<<< Смотри
group by C.FTK_CATHEDRA_NAME <<<< убираем
) as WOMEN1,

from FTK_STUDENT S
inner join FTK_GROUP G on G.FTK_GROUP_ID = S.FTK_GROUP_ID
inner join FTK_CATHEDRA CC on CC.FTK_CATHEDRA_ID =
^^^ Альяс меняем
G.FTK_CATHEDRA_ID
group by C.FTK_CATHEDRA_NAME
...
Рейтинг: 0 / 0
Здравствуйте! Вопрос по использованию GROUP BY.
    #32032788
Peter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

Почти все верно, только alias нужно поменять во внешнем запросе везде (и в select, и в group by).

Очень благодарен. Все работает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Здравствуйте! Вопрос по использованию GROUP BY.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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