Допустим, у меня есть таблица со столбцами value, dim1, ..., dim 10
, и я хочу получить медиану для всех возможных группировок по столбцам dim1
, ..., dim10
.то есть по всем подгруппам, всем подгруппам в любых 9 измерениях, любых 8 ...
Я могу сделать
SELECT * FROM
(
SELECT
APPROX_QUANTILES(value, 100)[SAFE_ORDINAL(50)] as median,
dim1, ..., dim10
FROM table
GROUP BY dim1, ..., dim10
)
UNION ALL
(
SELECT
APPROX_QUANTILES(value, 100)[SAFE_ORDINAL(50)] as median,
dim1, ..., dim9
NULL as dim10
FROM table
GROUP BY dim1, ..., dim9
)
UNION ALL
... --2^10 subtables
, но это довольно долго, особенно если table
вычисляется на лету,Есть ли лучший способ?
Я работаю с большим запросом, но ответ может быть не только для большого запроса