#spring #postgresql
Вопрос:
Я использую Spring Boot и PostgreSQL для создания таблицы, в которую я хочу вставить последние данные из другой таблицы.
Я использовал H2, и все было хорошо, но когда я перешел на PostgreSQL, ошибка «SELECT … За » ОТ «должна следовать ссылка на таблицу, например, ВЫБЕРИТЕ «ИЗ таблицы как FOO» .
Однако при изменении моего запроса с помощью AS у меня все еще возникает та же ошибка.
"CREATE TABLE IF NOT EXISTS EOD AS "
"(SELECT ID, "
"CUSIP, "
"NAME, "
"ISIN, "
"NAV, "
"RIC, "
"RTV,"
"VOLATILITY as volatility, "
"CURRENCY as currency, "
"ASK_ISSUER as ask_issuer, "
"ASK_KECH as ask_kech, "
"AVERAGE_SCORE as average_score, "
"BID_ISSUER as bid_issuer, "
"BID_KECH as bid_kech, "
"BID_ONLY as bid_only, "
"CREATOR as creator, "
"DECENTER as decenter, "
"DENOMINATION as denomination, "
"FORCE_PUBLISH as force_publish, "
"ISSUER_SPREAD as issuer_spread, "
"KECH_MARGIN as kech_margin, "
"KECH_SPREAD as kech_spread, "
"DISTANCE_TO_BANDS_SCORE as distance_to_bands_score, "
"DIFFERENCE_TO_LEXIFI_PRICE_SCORE as difference_to_lexifi_price_score, "
"METRIC_C as metric_c, "
"PRICE_EXPRESSION as price_expression, "
"PRODUCT_TYPE as product_type, "
"PUBLISHED as published, "
"PUBLISHING as publishing, "
"TIMESTAMP as timestamp "
"FROM "
"("
"SELECT * FROM RTDATABASE AS T "
"JOIN (SELECT MAX(CONVERT(TIMESTAMP, DATETIME)) AS LATESTDATE FROM T GROUP BY ISIN)"
") tm "
"WHERE CONVERT(tm.TIMESTAMP, DATETIME) = tm.LATESTDATE) AS LATESTDATA;";
Есть идеи, как решить эту проблему?
Заранее большое спасибо !
Комментарии:
1. Финал
AS LATESTDATA
для меня не имеет никакого смысла, иCONVERT
в PostgreSQL такой функции нет. Возможно, вам следует рассказать нам, чего вы пытаетесь достичь этим заявлением.2. Спасибо за ваш ответ, это SQL-скрипт. Я хочу взять последние данные в базе данных RTD на сегодняшнюю дату и ввести их в базу данных EOD, которую следует создать, если она не существует. Этот запрос отлично работает с H2.
3. Ну, H2 и Postgres-две очень разные базы данных.
convert()
Функция Postgres используется для преобразования наборов символов в Postgres. Что вы собираетесь делатьCONVERT(tm.TIMESTAMP, DATETIME)
? И какой тип данных являетсяtimestamp
столбцом? И этоdatetime
тоже колонка?4. @LaurenzAlbe: финал
AS LATESTDATA
, вероятно, был добавлен из-за бесполезных скобок вокруг полного ВЫБОРА5. Спасибо за ваш ответ. Я хочу преобразовать тип столбца в метку времени, чтобы сравнить значения в столбце.