PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tham gia SQL cột bí danh

Không thể nhìn thấy bí danh 'ngày tháng' từ đó.

Bạn có thể sử dụng một vài bảng sau WITH, vì vậy tôi khuyên bạn nên chuyển lựa chọn thứ hai ở đó.

Tôi không hoàn toàn chắc chắn về cấu trúc bảng weather.meso nhưng bằng cách đánh giá dựa trên truy vấn của bạn, điều này sẽ hoạt động:

WITH
    forecast_prep AS (
        SELECT
              date_trunc('day', foretime) :: DATE AS Foredate,
              extract(HOUR FROM foretime) + 1     AS foreHE,
              lat,
              lon,
              max(windspeed) as windspeed,
              max(as_of)                          AS as_of
        FROM weather.forecast
        WHERE date_trunc('day', foretime) :: DATE - as_of >= INTERVAL '16 hours'
        GROUP BY Foredate, foreHE, lat, lon
   ),
   tmp AS (
      SELECT
        meso.station,
        meso.lat,
        meso.lon,
        meso.timestmp,
        date_trunc('day', meso.timestmp) :: DATE  AS Date,
        extract(HOUR FROM meso.timestmp) + 1      AS HE,
        CAST(AVG(meso.windspd) AS NUMERIC(19, 2)) AS Actual
      FROM weather.meso
      GROUP BY station, lat, lon, timestmp, Date, HE
   )
SELECT 
    tmp.station, tmp.Date, tmp.HE, tmp.Actual, forecast_prep.windspeed, forecast_prep.as_of
FROM tmp
INNER JOIN forecast_prep ON (
    tmp.lat = forecast_prep.lat 
    AND tmp.lon = forecast_prep.lon 
    AND tmp.Date = forecast_prep.Foredate
    AND tmp.HE = forecast_prep.foreHE
)
WHERE 
    (tmp.timestmp BETWEEN '2016-02-01' AND '2016-02-02') 
    AND (tmp.station = 'KSBN')
GROUP BY 
    tmp.station, tmp.Date, tmp.HE, forecast_prep.windspeed, forecast_prep.as_of, tmp.Actual
ORDER BY tmp.Date, tmp.HE ASC;

Giống như trong ví dụ đầu tiên ngay tại đây https://www.postgresql.org/docs/8.4/static/queries-with.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các chuỗi không có khoảng trống PostgreSQL

  2. Cách đóng lỗ hổng bảo mật trong PostgreSQL

  3. mysql_insert_id thay thế cho postgresql

  4. Cách buộc đánh giá truy vấn con trước khi tham gia / đẩy xuống máy chủ nước ngoài

  5. Cách chèn dữ liệu vào bảng bằng các thủ tục được lưu trữ trong postgresql