У меня есть sql запрос Select, который имеет группу. Я хочу считать все записи после группы оператором. Существует ли путь к этому непосредственно от sql? Например, имея таблицу с пользователями я хочу выбрать различные города и общее количество пользователей
select town, count(*) from user
group by town
Я хочу иметь столбец со всеми городами и другого с числом пользователей во всех строках.
Пример результата для того, чтобы иметь 3 города и 58 пользователей всего:
Town Count
Copenhagen 58
NewYork 58
Athens 58
Это будет делать то, что вы хотите (список городов с количеством пользователей в каждом):
select town, count(town)
from user
group by town
Вы можете использовать большинство агрегатных функций при использовании GROUP BY
.
Обновление (после изменения вопроса и комментариев)
Вы можете объявить переменную для количества пользователей и установить ее на количество пользователей, а затем выбрать с ее помощью.
DECLARE @numOfUsers INT
SET @numOfUsers = SELECT COUNT(*) FROM user
SELECT DISTINCT town, @numOfUsers
FROM user
В Oracle вы можете использовать аналитические функции:
select town, count(town), sum(count(town)) over () total_count from user
group by town
Другой вариант - использовать подзапрос:
select town, count(town), (select count(town) from user) as total_count from user
group by town