【问题标题】:sql pivot with repeated variable带有重复变量的sql枢轴
【发布时间】:2017-12-23 07:23:27
【问题描述】:

我是 SQL 新手,并且正在使用 Google BigQuery。我有一张表,其中有一条记录,如下所示:

publication_number |受让人

US-6044964-A|索尼公司

|数字音频光盘公司

标识符publication_number只列出一次;第一个受让人与publication_number 出现在同一行,而第二个受让人仅显示为没有标识符的附加行。

我想做的是创建一个如下表:

publication_number |受让人1 |受让人2

US-6044964-A |索尼公司|数字音频光盘公司

附加受让人作为另一列显示的位置。

我有 Google 的专利公开数据所称的“重复”变量。我在 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]来转义名称

我发现以下问题/回复与我想要使用 pivot here 做的事情类似。但是,我没有该示例中的每一行的标识符。

如何为第二个受让人创建另一列?

【问题讨论】:

    标签: sql google-bigquery pivot


    【解决方案1】:

    下面是 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     
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多