#sql #amazon-redshift
#sql #amazon-redshift
Вопрос:
Я использую базу данных redshift.Я пытаюсь написать сводный запрос, чтобы узнать десять лучших неактивных банкоматов из 3 таблиц.Когда я пытаюсь найти процент неактивных банкоматов от общего состояния банкомата, я получаю десятичную ошибку.Для столбца atm_status нет нулевых значений.Какую логику можно использовать здесь, чтобы получить процент неактивных банкоматов от общего количества?
Count percent выдает десятичную ошибку — c.atm_status/(select sum(atm_status) from etl_schema.fact_atm_trans) count_percent
Ввод:
select a.atm_number,a.atm_manufacturer,b.location,count(c.trans_id) as total_transaction_count,count(c.atm_status) as inactive_count,c.atm_status/(select sum(atm_status) from etl_schema.fact_atm_trans) count_percent
from etl_schema.fact_atm_trans c
inner join etl_schema.dimen_atm a on a.atm_id = c.atm_id
inner join etl_schema.dimen_location b on b.location_id = a.atm_location_id
where c.atm_status='Inactive'
group by a.atm_number,a.atm_manufacturer,b.location,c.atm_status
order by inactive_count desc limit 10;
Вывод
ERROR: Invalid exponent, Value 'e', Pos 6, Type: Decimal Detail: ----------------------------------------------- error: Invalid exponent, Value 'e', Pos 6, Type: Decimal code: 1207 context: Active query: 1580 location: :0 process: query0_125_1580 [pid=0] -----------------------------------------------
Комментарии:
1. На каком основании (данные) мы можем определить, что банкомат неактивен?
2. atm_status=’Неактивный’
3.
c.atm_status
содержит значениеInactive
, и все же вы пытаетесь разделить это поле на что-то? Что именно является результатом «неактивного деления на 2», например?4. как получить процент только неактивных тогда?
5. Добавьте еще
COUNT
один . Что-то вродеCOUNT(c.atm_status)/(SELECT SUM(atm_status)...