Получите данные патентов от BigQuery по заявке - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу собирать данные по номеру приложения следующим образом.

SELECT p.application_number AS app, COUNT(c.publication_number) AS Citations 
     FROM 'patents-public-data.patents.publications' AS p, UNNEST(citation) AS c 
     WHERE p.application_number IN ('CN201510747352'
         ) 
     GROUP BY p.application_number

Но это не может работать.URL является страницей патента.Кто может сделать мне одолжение? patent_application_number

1 Ответ

0 голосов
/ 27 ноября 2018

Ниже для BigQuery Standard SQL

#standardSQL
SELECT 
  p.application_number AS app, 
  SUM((SELECT COUNT(publication_number) FROM UNNEST(citation))) AS Citations 
FROM `patents-public-data.patents.publications` AS p
WHERE p.application_number IN ('CN-201510747352-A') 
GROUP BY p.application_number   

с результатом

Row app                 Citations    
1   CN-201510747352-A   14      

Обратите внимание: ваш оригинальный запрос будет работать, если вы будете использовать CN-201510747352-A вместо CN201510747352 какниже

#standardSQL
SELECT p.application_number AS app, COUNT(c.publication_number) AS Citations 
FROM `patents-public-data.patents.publications` AS p, 
UNNEST(citation) AS c 
WHERE p.application_number IN ('CN-201510747352-A') 
GROUP BY p.application_number    

но все же - я рекомендую вам использовать предоставленный мною запрос - причина в том, что - если у данного приложения вообще нет цитирования - такое приложение не будет возвращено в выходные данные, тогда как рекомендуемый запрос вернет count =0

например - если вы закомментируете предложение WHERE в обоих запросах - сначала будет возвращено 76 073 734;в то время как секунда возвратит 29 489 639 приложений.

Это может быть не так важно в данном конкретном случае использования - но хорошо иметь в виду для ваших следующих запросов

Другой вопрос - это запрошенное число 14, которое не совпадаеткак 7 на оригинальном сайте.Есть ли в этом ошибки?

7 - правильный ответ - см. Ниже

#standardSQL
SELECT 
  p.application_number AS app, 
  COUNT(DISTINCT c.publication_number) Citations 
FROM `patents-public-data.patents.publications` AS p,
UNNEST(citation) c
WHERE p.application_number IN ('CN-201510747352-A') 
GROUP BY p.application_number     

с результатом

Row app                 Citations    
1   CN-201510747352-A   7    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...