dozer icon indicating copy to clipboard operation
dozer copied to clipboard

Alias not usable in GROUP BY

Open snork-alt opened this issue 2 years ago • 1 comments

The following query does not work

    SELECT
      PULocationID, DOLocationID, window_start AS day,
      pu_zones.Zone as PULocationName,
      do_zones.Zone as DOLocationName,
      AVG(fare_amount) as avg_amount
    INTO avg_fares
    FROM TUMBLE(trips, tpep_pickup_datetime, '1 DAY')
    INNER JOIN zones pu_zones ON trips.PULocationID = pu_zones.LocationID
    INNER JOIN zones do_zones ON trips.DOLocationID = do_zones.LocationID
    GROUP BY day, PULocationID, DOLocationID;

While this one does work:

    SELECT
      PULocationID, DOLocationID, window_start AS day,
      pu_zones.Zone as PULocationName,
      do_zones.Zone as DOLocationName,
      AVG(fare_amount) as avg_amount
    INTO avg_fares
    FROM TUMBLE(trips, tpep_pickup_datetime, '1 DAY')
    INNER JOIN zones pu_zones ON trips.PULocationID = pu_zones.LocationID
    INNER JOIN zones do_zones ON trips.DOLocationID = do_zones.LocationID
    GROUP BY window_start, PULocationID, DOLocationID;

GROUP BY should support using aliases as well as original field names

snork-alt avatar Sep 06 '23 07:09 snork-alt

This is standard SQL in most dialects. Consider referencing by number

   SELECT
      PULocationID, DOLocationID, window_start AS day,
      pu_zones.Zone as PULocationName,
      do_zones.Zone as DOLocationName,
      AVG(fare_amount) as avg_amount
    INTO avg_fares
    FROM TUMBLE(trips, tpep_pickup_datetime, '1 DAY')
    INNER JOIN zones pu_zones ON trips.PULocationID = pu_zones.LocationID
    INNER JOIN zones do_zones ON trips.DOLocationID = do_zones.LocationID
    GROUP BY 3, 1, 2;

Elsayed91 avatar Oct 15 '23 21:10 Elsayed91