PostgreSQL计数与一列分组时与另一列的区别

pieyvz9o  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(156)

我有一个表,看起来像下面这样(简化):

userid   |   action    |    userstate
-----------------------------------------------------
1        | click       |    Maryland
2        | press       |    Delaware
3        | jog         |    New York
3        | leap        |    New York

字符串
我想查询的是“每个状态下执行任何操作的用户数量”
所以结果是:

state |  users_acting
---------------------
Maryland |    1
Delaware |    1
New York |    1


请注意,单个用户将仅处于一个状态。
我无法通过按状态分组来正确地混合不同的用户。我不能

SELECT DISTINCT (userid), COUNT(userid) FROM data GROUP BY state


因为distinct列需要在group by中,我不想这样做,更不用说select子句的问题了。
谢谢你的任何想法。

ie3xauqp

ie3xauqp1#

刚刚发现有一个COUNT(DISTINCT()选项,它不需要将该distinct值放置在分组子句中。

SELECT COUNT(DISTINCT userid) FROM data GROUP BY state

字符串
有窍门吗

g6baxovj

g6baxovj2#

您可以尝试以下格式:

SELECT COUNT(DISTINCT userid) FROM data GROUP BY state

字符串

相关问题