4

我正在尝试进行群组分析,并根据承租人的第一个租赁年份(= 承租人第一次租赁的年份)比较平均租金数量。基本上,我在问一个问题:我们是否保留了第一年租金是 2013 年的租户而不是第一年是 2015 年的租户?

这是我的代码:

SELECT renter_id, 
       Min(Date_part('year', created_at)) AS first_rental_year, 
       ( Count(trip_finish) )             AS number_of_trips 
FROM   bookings 
WHERE  state IN ( 'approved', 'aboard', 'ashore', 'concluded', 'disputed' ) 
  AND  first_rental_year = 2013 
GROUP  BY 1 
ORDER  BY 1; 

我得到的错误信息是:

ERROR:  column "first_rental_year" does not exist
LINE 6: ... 'aboard', 'ashore', 'concluded', 'disputed') AND first_rent...
                                                             ^

********** Error **********

ERROR: column "first_rental_year" does not exist
SQL state: 42703
Character: 208

任何帮助深表感谢。

4

2 回答 2

6
SELECT renter_id,
       Count(trip_finish) AS number_of_trips 
FROM (
        SELECT renter_id, 
               trip_finish,
               Min(Date_part('year', created_at)) AS first_rental_year
        FROM   bookings 
        WHERE  state IN ( 'approved', 'aboard', 'ashore', 'concluded', 'disputed' ) 
     ) T
WHERE first_rental_year = 2013  
GROUP  BY renter_id
ORDER  BY renter_id ; 
于 2016-05-24T15:41:04.820 回答
-1

错误:

SQL 错误 [42703]:错误:XYZ 列不存在

检查列字段周围是否有双引号:

坏的:

update public."AppTime" t Set "CustomTask"= 'XYZ' where  t.SharedAppId = 12890;

好的:

在“SharedAppId”周围加上双引号

update public."AppTime" t Set "CustomTask"= 'XYZ' where  t."SharedAppId" = 12890;

如果您创建的表没有引号,则在查询时不应使用引号,反之亦然。手册中对此进行了解释:“如果您想编写可移植应用程序,建议您始终引用特定名称或永远不要引用它”

于 2022-01-20T10:03:33.590 回答