Я автоматизирую процесс на работе, где вывод должен быть в определенном не алфавитном порядке в зависимости от имени (internal_product, type text) в дополнение к числу (type text). Сначала я запускаю подзапрос, где собираю информацию из четырех немного разных таблиц с помощью объединений. Затем я добавляю результат с union
перед внешними group by
суммами единиц и сумм. Псевдо-запрос выглядит следующим образом:
select name, number, internal_product, sum(units), sum(amount) from (
select fields, sum(x)
from t1
join join-conditions
join join-conditions
group by name, number, internal_product
union
.....
select fields, sum(x)
from t5
join join-conditions
join join-conditions
group by name, number, internal_product
) as foo
group by name, number, internal_product
order by number, name;
Я попытался изменить столбец в вспомогательной таблице, используемой в одном из объединений, на тип enum
, поскольку он используется во внешнем group by
( SO-thread ), но типе столбца конечно, в условии соединения должно быть то же самое, чтобы измененный запрос был недействительным. Существует 30 наименований продуктов, поэтому я хотел бы избежать использования CASE name
, как это предлагается gbn и Guffa.
Существуют ли другие способы применения определенного порядка в order by
?