SELECT id, -- min_byと同じ結果(id毎、date毎に昇順で並び替えた時に一番最初にくる priceを取得する) ARRAY_AGG(price ORDER BY id, date)[OFFSET(0)] AS first_date_price, -- max_byと同じ結果(id毎、date毎に降順で並び替えた時の一番最初にくる priceを取得する) ARRAY_AGG(price ORDER BY id, date DESC)[OFFSET(0)] AS latest_date_price FROM dataset.table GROUP BY id