Чтобы визуализировать пузырьковую диаграмму в Gapminder, все даты должны быть преобразованы из dd / mm / yyyy в yyyyQ1.Этот код выполняет преобразование в SQLite.
Я могу с помощью этого кода преобразовать даты на моем локальном клиенте SQLite, а затем загрузить выведенный CSV-файл в Gapminder для просмотра пузырьковой диаграммы.
Однако эта база данных объемом 25 ГБ вышла за пределы клиента SQLite, и ее необходимо запрашивать с помощью BigQuery.
Есть две проблемы.
1: Во-первых, для BigQuery этот код должен преобразовать столбец даты csv из дд / мм / гггг в мм / дд / гггг.
Тогда для Gapminder необходимо, чтобы конечный результат был yyyyQ1 ..
Проблема в том, что когда я запускаю тот же код в редакторе SQL веб-интерфейса BigQuery, я получаю сообщение об ошибке "неожиданный канал"":
Ввод:
replace(substr(PCR.repdte,6),'/','')||'q'||CAST(1+ .
((substr(PCR.repdte,1,2)-1) / 3) AS INTEGER)
Ввод:
Syntax error: Unexpected "|" at [3:44]
![enter image description here](https://i.stack.imgur.com/emTL9.png)
Вот весь операторЯ успешно запустил клиент SQLite и попытался запустить его в редакторе веб-интерфейса Bigquery SQL:
SELECT
(SELECT
replace(substr(PCR.repdte,6),'/','')||'q'||CAST(1+ .
((substr(PCR.repdte,1,2)-1) / 3) AS INTEGER)
FROM All_Reports_19920331_Performance_and_Condition_Ratios as PCR) AS
Quarter,
(SELECT
Round(AVG(PCR.lnlsdepr))
FROM All_Reports_19920331_Performance_and_Condition_Ratios as PCR) AS
NetLoansAndLeasesToDeposits,
(SELECT sum(CAST(LD.IDdepsam as int))
FROM
'All_Reports_19920331_Deposits_Based_on_the_Dollars250,000_
Reporting_Threshold' AS LD) AS DepositAccountsWith$LessThan$250k
UNION ALL
SELECT
(SELECT
replace(substr(PCR.repdte,6),'/','')||'q'||CAST(1+ .
((substr(PCR.repdte,1,2)-1) / 3) AS INTEGER) --converts date format
from dd/mm/yyyy to yyyyq1 (financial quarters)
FROM All_Reports_19920630_Performance_and_Condition_Ratios as PCR) AS
Quarter,
(SELECT
Round(AVG(PCR.lnlsdepr))
FROM All_Reports_19920630_Performance_and_Condition_Ratios as PCR) AS
NetLoansAndLeasesToDeposits,
(SELECT sum(CAST(LD.IDdepsam as int))
FROM
'All_Reports_19920630_Deposits_Based_on_the_Dollars
250,000_Reporting_Threshold' AS LD) AS
DepositAccountsWith$LessThan$250k
Цель - преобразовать дату из дд / мм / гггг в мм / дд / гггг, так что BigQueryмогу прочитать.Затем снова конвертируйте его в yyyyQ1, чтобы Gapminder мог его прочитать.
![enter image description here](https://i.stack.imgur.com/UVCSj.png)