Среднее и внутреннее объединение в SQL - PullRequest
0 голосов
/ 29 апреля 2018

Я очень плохо знаком с SQL, поэтому задаю этот вопрос. Я пытаюсь определить среднее время доставки для товаров, которые имеют и не имеют гарантии. Гарантия может быть представлена ​​как 1 или NaN, поэтому столбец не является ЦИФРОВЫМ. Я написал код, который, на мой взгляд, должен выглядеть, но с ошибками.

SHIPPING_TABLE:

(Композитный ключ)

Item_id
Basket_id
seller_id
warranty
postage_class 

FIRST_CLASS:

(все как первичный ключ)

Item_id
Basket_id
seller_id
warranty
postage_class
delivery_time

create table AVG_DELIVERY_TIME as 
(
    SELECT DELIVERY_TIME AVG 
    ,(DELIVERY_TIME) 
    FROM 
    (
        SELECT SHIPPING_TABLE_LINK.warranty
        ,FIRST_CLASS.DELIVERY_TIME
        FROM FIRST_CLASS
        INNER JOIN SHIPPING_TABLE_LINK 
            ON SHIPPING_TABLE_LINK.warranty = FIRST_CLASS.DELIVERY_TIME
    )
);

Отчет об ошибке - ORA-01722: недействительный номер 01722. 00000 - «недействительный номер» * Причина: указанный номер недействителен. * Действие: Укажите правильный номер.

1 Ответ

0 голосов
/ 29 апреля 2018

Я полагаю, что вы можете обновить значения в столбце гарантии на 0, а не на NaN, используя следующий код

ОБНОВЛЕНИЕ table_name SET гарантия = 0 ГДЕ гарантия = "NaN;

затем вы можете создать новую таблицу и указать этот столбец как числовой, а не как varchar. Надеюсь, это поможет

...