我正在尝试编写Postgres查询,以显示不同的人数,但计算实际的(非不同的)人数。
所以如果我有
1  Ray ray@gmail.com
2  Ray ray@gmail.com
3  Kate kate@gmail.com我想展示的是:
Ray 2
Kate 1==
SELECT name, email, COUNT(*) 
FROM (SELECT DISTINCT name, email 
FROM people
WHERE degree = 'Gradiate') 我得到了:
ERROR:  subquery in FROM must have an alias
LINE 3: FROM (SELECT DISTINCT name, email如何解决这个问题?
发布于 2014-10-16 07:28:53
您根本不需要子查询(如前所述,这将需要一个表别名)。这对你需要的东西是没有意义的。
像这样使用GROUP BY:
SELECT name, email, count(*) AS ct
FROM   people
WHERE  degree = 'Graduate'
GROUP  BY 1, 2;在本例中,GROUP  BY 1, 2是GROUP  BY name, email的缩写。Example with more details.
当然,这里必须匹配name和email,这与您的示例中只显示name和count不同(这与您的查询相矛盾)。
发布于 2014-10-16 06:57:55
添加一个
AS some_alias像这样:
SELECT name, email, COUNT(*) 
FROM (SELECT DISTINCT name, email 
FROM people
WHERE degree = 'Gradiate') as my_alias发布于 2014-10-16 21:35:40
SELECT name, count(*) AS count
FROM   people
WHERE  degree = 'Gradiate'
GROUP  BY name;https://stackoverflow.com/questions/26393455
复制相似问题