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
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
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