sql - 访问postgresql中的列别名

标签 sql postgresql nested subquery

在理解查询别名在 postgresql 中的工作方式时遇到了一些麻烦。 我有以下内容:

SELECT DISTINCT robber.robberid,
                nickname,
                Count(accomplices.robberid) AS count1
FROM   robber
       INNER JOIN accomplices
               ON accomplices.robberid = robber.robberid
GROUP  BY robber.robberid,
          robber.nickname
ORDER  BY Count(accomplices.robberid) DESC;


 robberid |            nickname            | count1 
----------+--------------------------------+--------
       14 | Boo Boo Hoff                   |      7
       15 | King Solomon                   |      7
       16 | Bugsy Siegel                   |      7
       23 | Sonny Genovese                 |      6
        1 | Al Capone                      |      5
 ...

我可以使用 as 命令重命名“count1”列,但我似乎无法在查询中再次引用它?我试图在此查询的末尾包含一个 HAVING 命令,以仅查询计数小于最大值一半的对象。

这是家庭作业,但我不要求答案,只是一个关于如何在另一个子句中包含 count1 列的指针。

有人能帮忙吗?

最佳答案

一般情况下,后面的查询不能引用聚合列的别名,必须重复聚合

如果你真的想使用它的名字,你可以将你的查询包装成一个子查询

SELECT * 
FROM
(
    SELECT DISTINCT robber.robberid, nickname, count(accomplices.robberid)  
    AS count1 FROM robber                   
    INNER JOIN accomplices  
    ON accomplices.robberid = robber.robberid  
    GROUP BY robber.robberid, robber.nickname  
) v
ORDER BY count1 desc

关于sql - 访问postgresql中的列别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034849/

相关文章:

Sql:选择时间差很小的行

sql - PostgreSQL - 将查询结果分成五分位数

postgresql - 如何在 OSX 上降级到较低版本的 PostgreSQL

java - Postgres 中的 Bad Integer 2147483649(其 BIGINT 值)错误

jquery:棘手的选择器问题

sql - postgres 中的删除速度很慢

mysql - 写一个基于三个表的sql连接

postgresql - ~~ Postgres 中的运算符

javascript - 根据给定值查找嵌套数组

java - 尝试使用 Spring Boot 从 POST 请求正文读取嵌套 JSON 时获取 null