我有一个SQLSELECT
查询也使用GROUP BY
,
我想统计之后的所有记录GROUP BY
子句过滤结果集。
有什么办法可以直接用SQL来实现这个功能吗?例如,如果我有桌子users
并想要选择不同的城镇和total用户数量:
SELECT `town`, COUNT(*)
FROM `user`
GROUP BY `town`;
我想要一列包含所有城镇,另一列包含所有行中的用户数量。
共有 3 个城镇和 58 个用户的结果示例如下:
Town |
Count |
Copenhagen |
58 |
New York |
58 |
Athens |
58 |
这会做你想做的(城镇列表,每个城镇的用户数量):
SELECT `town`, COUNT(`town`)
FROM `user`
GROUP BY `town`;
你可以使用大部分聚合函数 https://en.wikipedia.org/wiki/Aggregate_function当使用一个GROUP BY
陈述
(COUNT
, MAX
, COUNT DISTINCT
etc.)
Update:您可以为用户数量声明一个变量并将结果保存在那里,然后SELECT
变量的值:
DECLARE @numOfUsers INT
SET @numOfUsers = SELECT COUNT(*) FROM `user`;
SELECT DISTINCT `town`, @numOfUsers FROM `user`;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)