Ошибка SQL — запроса при создании таблицы в PostgreSQL /SpringBoot

#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. Спасибо за ваш ответ. Я хочу преобразовать тип столбца в метку времени, чтобы сравнить значения в столбце.