我对SQL很陌生,并且使用Google BigQuery。我有一张表,其中有一张记录如下:
publication_number =受让人
美国-6044964-索尼公司
数字音频光盘公司
标识符publication_number只列出一次;第一个受让人出现在与publication_number相同的行上,第二个只显示为附加行,没有标识符。
我要做的是创建一个表,如下所示:
publication_number \ assignee1 _ assignee2
美国-6044964-索尼公司数字音频光盘公司
附加受让人作为另一列出现的。
我有谷歌的专利--公共数据--所谓的“重复”变量。我在BigQuery中尝试了以下查询:
SELECT pvt.publication_number, pvt.[1] as assignee1, pvt.[2] as assignee2
FROM `main_tables.main_table5`
PIVTO (
MAX(assignee)
FOR publication_number IN([1],[2])
) as pvt我收到以下错误:
语法错误:意外的"[“在2:36。如果这是表标识符,则使用
, e.g.table.name`而不是table.name转义名称。
我发现下面的问题/回答与我想要的使用枢轴here做类似的事情。但是,我没有每个行的标识符,如该示例所示。
如何为第二个受让人创建另一列?
发布于 2017-12-22 23:18:11
下面是BigQuery标准SQL,应该给您一个想法
#standardSQL
SELECT
publication_number,
assignee[SAFE_OFFSET(0)] assignee1,
assignee[SAFE_OFFSET(1)] assignee2,
assignee[SAFE_OFFSET(2)] assignee3,
assignee[SAFE_OFFSET(3)] assignee4
FROM `yourproject.yourdataset.yourtable` 您可以对下面的虚拟数据进行测试/播放
#standardSQL
WITH `yourproject.yourdataset.yourtable` AS (
SELECT 'US-6044964-A' publication_number , ['Sony Corporation', 'Digital Audio Disc Corporation'] assignee UNION ALL
SELECT 'ABC', ['xyz', 'abc', 'uvw']
)
SELECT
publication_number,
assignee[SAFE_OFFSET(0)] assignee1,
assignee[SAFE_OFFSET(1)] assignee2,
assignee[SAFE_OFFSET(2)] assignee3,
assignee[SAFE_OFFSET(3)] assignee4
FROM `yourproject.yourdataset.yourtable` 结果是
publication_number assignee1 assignee2 assignee3 assignee4
US-6044964-A Sony Corporation Digital Audio Disc Corporation null null
ABC xyz abc uvw null https://stackoverflow.com/questions/47948281
复制相似问题