Использование Cast in SQL для преобразования текстовых данных в целое число, чтобы взять AVG - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно взять среднее значение этого набора данных, но столбец отформатирован как деньги / текст.

data that needs converting

Я пробовал:

SELECT
    sfo_calendar.calender_date,
    AVG(CAST(sfo_calendar.price AS int) avg_price
FROM
    sfo_calendar
GROUP BY sfo_calendar.calender_date;

Продолжайте получать эту ошибку:

ОШИБКА: неверный синтаксис ввода для целого числа: «$ 101.00» Состояние SQL: 22P02

1 Ответ

0 голосов
/ 22 февраля 2019

Проблема заключается в знаке $, он не конвертируется в int, поэтому вы можете попробовать заменить его на ноль, поскольку он находится в начале цены и не влияет на значение.

    SELECT
        sfo_calendar.calender_date,
        AVG(CAST(replace(sfo_calendar.price,'$',0) AS int) avg_price
    FROM
        sfo_calendar
    GROUP BY sfo_calendar.calender_date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...