#google-bigquery #teradata
#google-bigquery #teradata
Вопрос:
Я конвертирую запрос в teradata в Bigquery и пытаюсь преобразовать приведенный ниже запрос :
select 1234|| TRIM(CSUM(1,1) rowVal (FORMAT 'Z(17)9')) from schema.tableName
я не могу понять значение (ФОРМАТ ‘Z (17) 9’), и я пытаюсь достичь того же, используя приведенный ниже синтаксис:
select 1234|| ROW_NUMBER() OVER (ORDER BY 1) FROM `bigquery-public-data.noaa_gsod.gsod194*`;
Как я могу убедиться, что результат моего большого запроса также имеет (ФОРМАТ ‘Z (17) 9’), и как я могу добавить значение строки в номер строки
Ответ №1:
CSUM
это устаревший синтаксис (и (1,1)
действительно неэффективный). Ваш перевод в ROW_NUMBER правильный, ФОРМАТ BigQuery похож, должен быть:
select 1234|| FORMAT("d", ROW_NUMBER() OVER (ORDER BY 1) rowval)
Если есть GROUP BY col
вы должны переместить его в PARTITION BY
.
Комментарии:
1. ФОРМАТ bigquery будет работать для вас. cloud.google.com/bigquery/docs/reference/standard-sql /…