如何在同一SELECT语句中使用COUNT和GROUP BY

如何在同一SELECT语句中使用COUNT和GROUP BY

我有一个SQL SELECT查询,其中有一个组BY。我想通过陈述来统计组后的所有记录。是否有一种直接从SQL进行此操作的方法?例如,有一个具有用户的表,我希望选择不同的城镇和共计用户数


select town, count(*) from user

group by town

我希望有一个列包含所有城镇,另一个列有所有行的用户数。


共有3个城镇和58个用户的结果如下:


Town         Count

Copenhagen   58

NewYork      58

Athens       58


犯罪嫌疑人X
浏览 927回答 3
3回答

慕码人2483693

这将做您想做的事情(城镇列表,每个城镇的用户数):select town, count(town) from usergroup by town你可以用最多的聚合函数使用时GROUP BY.更新(在对问题和评论进行修改后)您可以为用户数声明一个变量,并将其设置为用户数,然后使用该变量进行选择。DECLARE @numOfUsers INTSET @numOfUsers = SELECT COUNT(*) FROM userSELECT DISTINCT town, @numOfUsersFROM user

慕雪6442864

你可以用COUNT(DISTINCT ...) :SELECT COUNT(DISTINCT town) FROM user

莫回无

另一种方式是:/* Number of rows in a derived table called d1. */select count(*) from(   /* Number of times each town appears in user. */   select town, count(*)   from user   group by town) d1
打开App,查看更多内容
随时随地看视频慕课网APP