Как использовать количество и группу в том же избранном операторе

У меня есть sql запрос Select, который имеет группу. Я хочу считать все записи после группы оператором. Существует ли путь к этому непосредственно от sql? Например, имея таблицу с пользователями я хочу выбрать различные города и общее количество пользователей

select town, count(*) from user
group by town

Я хочу иметь столбец со всеми городами и другого с числом пользователей во всех строках.

Пример результата для того, чтобы иметь 3 города и 58 пользователей всего:

Town         Count
Copenhagen   58
NewYork      58
Athens       58
209
задан Stavros 1 November 2010 в 23:48
поделиться

2 ответа

Это будет делать то, что вы хотите (список городов с количеством пользователей в каждом):

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
261
ответ дан 23 November 2019 в 04:38
поделиться

В 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
3
ответ дан 23 November 2019 в 04:38
поделиться
Другие вопросы по тегам:

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