sql >> Database >  >> RDS >> PostgreSQL

Word lid van Alias ​​Columns SQL

De alias 'Datum' is vanaf daar niet te zien.

Je kunt een paar tabellen gebruiken na WITH, dus ik raad je aan om daar naar de tweede selectie te gaan.

Ik ben niet helemaal zeker van de tabelstructuur van weather.meso, maar door te raden op basis van uw zoekopdracht, zou dit moeten werken:

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;

Zoals in het eerste voorbeeld hier https://www.postgresql.org/docs/8.4/static/queries-with.html




  1. Uitzondering in JPA bij gebruik van seed-bestand voor PostgreSQL

  2. Hoe Trunc() werkt in PostgreSQL

  3. TODATETIMEOFFSET() Voorbeelden in SQL Server

  4. Ms-Access VBA Class Object Arrays