我是BigQuery的新手,我想问一下是否有可能使用Legacy SQL为row_number()函数设置起始编号。我试过这段代码:
SELECT
ROW_NUMBER() OVER(order by col1) + 20 AS xxx
From tb1
但它会返回此错误:
错误:在第2行第44栏遇到“”+“”+“”。期待:
任何答案都将不胜感激
谢谢!
答案 0 :(得分:3)
如果您不熟悉BigQuery,强烈建议您从BigQuery Standard SQL开始
如果您愿意遵循此建议 - 以下将无需任何解决方法(例如在旧版sql中进行子选择)
#standardSQL
SELECT
20 + ROW_NUMBER() OVER(ORDER BY col1) AS xxx
FROM `project.dataset.tb1`
您可以使用以下虚拟数据进行上述测试/播放
#standardSQL
WITH `project.dataset.tb1` AS (
SELECT 1 col1 UNION ALL
SELECT 111 col1 UNION ALL
SELECT 11 col1
)
SELECT
col1, 20 + ROW_NUMBER() OVER(ORDER BY col1) AS xxx
FROM `project.dataset.tb1`
输出为
col1 xxx
1 21
11 22
111 23
答案 1 :(得分:0)
您可以尝试使用()
包装:
SELECT (ROW_NUMBER() OVER(order by col1)) + 20 AS xxx
From tb1;
如果不使用子查询:
SELECT s.xxx + 20 AS xxx
FROM ( SELECT ROW_NUMBER() OVER(order by col1) AS xxx
From tb1) s