2017-08-15 19 views
0

我無法在我的SQL Select語句的Group By中鍵入時間戳記日期類型。無法在組中分組時間戳記

SELECT geography_id, 
     listed_at::DATE, 
     EXTRACT(YEAR FROM listed_at) AS year, 
     EXTRACT(MONTH FROM listed_at) AS month, 
     EXTRACT(day FROM listed_at) AS day, 
     Count(*) AS active_listing_count, 
     SUM(list_price) AS sum_of_listing_price, 
     Date_part('day', current_date :: timestamp - listed_at :: timestamp) AS days_on_market, 
     COUNT(num_bathrooms) AS total_bathrooms, 
     COUNT(num_bedrooms) AS total_bedrooms 
    FROM properties 
    WHERE expired_at IS NULL 
    GROUP BY geography_id, 
      listed_at::DATE 
    ORDER BY listed_at::DATE DESC; 

我收到此錯誤:

ERROR: column "properties.listed_at" must appear in the GROUP BY clause or be used in an aggregate function 
+0

這只是一個猜測,但如果更改,會發生什麼listed_at :: DATE中的listed_at :: DATE列爲lists_at :: DATE列爲_at {或其他字符串},然後將它作爲值進行分組? –

+0

@DanielSchmidt我也試過,沒有工作。 – hky404

回答

2

在選擇列表中的listed_at每出現一次,應鑄造迄今:

SELECT geography_id, 
     listed_at::DATE, 
     EXTRACT(YEAR FROM listed_at::date) AS year, 
     EXTRACT(MONTH FROM listed_at::date) AS month, 
     EXTRACT(day FROM listed_at::date) AS day, 
     count(*) AS active_listing_count, 
     SUM(list_price) AS sum_of_listing_price, 
     date_part('day', current_date::timestamp - listed_at::date) AS days_on_market, 
     COUNT(num_bathrooms) AS total_bathrooms, 
     COUNT(num_bedrooms) AS total_bedrooms 
    FROM properties 
    WHERE expired_at IS NULL 
    GROUP BY geography_id, 
      listed_at::DATE 
    ORDER BY listed_at::DATE DESC; 
+0

工作,謝謝 – hky404