sql-запрос для поиска выходных данных

#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)...