如何在同一个select语句中使用count和group

我有一个sql select查询有一个group by。 我想计算群组后的所有记录。 有没有办法直接从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

您可以使用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
链接地址: http://www.djcxy.com/p/62685.html

上一篇: How to use count and group by at the same select statement

下一篇: service with uncompleted completion handlers