У меня есть запрос выбора SQL, который имеет группу по. Я хочу посчитать все записи после группировки по заявлению. Есть ли способ для этого прямо из SQL? Например, имея таблицу с пользователями, я хочу выбрать разные города и общее количество пользователей.
select town, count(*) from user
group by town
Я хочу иметь столбец со всеми городами и другой с количеством пользователей во всех строках.
Пример результата для 3 городов и 58 пользователей:
Town Count
Copenhagen 58
NewYork 58
Athens 58
Ответы:
Это будет делать то, что вы хотите (список городов, с количеством пользователей в каждом):
Вы можете использовать большинство агрегатных функций при использовании
GROUP BY
.Обновление (после изменения вопроса и комментариев)
Вы можете объявить переменную для количества пользователей и установить ее для количества пользователей, а затем выбрать с этим.
источник
*
... ОП ответил на свой вопрос, но, похоже, даже не проверял его, я просто проверяю, что это правильно :) fredosaurus.com/notes-db/select/groupby.htmlВы можете использовать
COUNT(DISTINCT ...)
:источник
town
столбца, и этоCOUNTs
не то (город вместо пользователя).Другой способ:
источник
Десять не удаленных ответов; большинство не делает то, что просил пользователь. Большинство Ответов неверно истолковали вопрос, считая, что в каждом городе 58 пользователей, а не 58. Даже те немногие, которые являются правильными, не оптимальны.
SHOW session status LIKE 'Handler%';
В контексте ОП:
Поскольку есть только один ряд из
tot
,CROSS JOIN
он не такой объемный, как мог бы быть.Обычный шаблон
COUNT(*)
вместоCOUNT(town)
. Последнее подразумевает проверкуtown
на ненулевое значение, что в этом контексте не требуется.источник
С Oracle вы можете использовать аналитические функции:
Другие ваши варианты - использовать подзапрос:
источник
Если вы хотите сделать заказ по количеству (звучит просто, но я не могу найти ответ в стеке о том, как это сделать), вы можете сделать:
источник
Вы можете использовать DISTINCT внутри COUNT, как сказал Милковский
в моем случае:
Это приведет к подсчету голосов за ответ, считая тот же user_id одним подсчетом
источник
Я знаю, что это старый пост в SQL Server:
источник
IFNULL
вместоISNULL
) приводит к различным числам для каждого города; пользователь хотел всего. Согласно Вопросу, 58, а не 174, является общим.Если вы хотите выбрать город и общее количество пользователей, вы можете использовать этот запрос ниже:
источник
User
.Если вы хотите использовать опцию Select All Query With Count, попробуйте это ...
источник
Попробуйте следующий код:
источник