2017-04-22 447 views
0

我想用SQL服务器检索专利数据。我感兴趣的变量是ID,即专利标识。对于每个ID,我还想检索几个变量进行分析,例如,已提交专利的司法管辖区。这些可以通过查看2个变量找到:AUTH或L507EP。这些列中的值对于每个ID都不是唯一的。例如,ID 1可能有2行,因为AUTH需要2个值,例如US和JP。我想避免每个ID有超过1行而不会丢失有价值的信息。所以,我想要做的是在ID级别标识AUTH中的不同字符串,并创建不同的列(AUTH1和AUTH2),分别接受字符串US和JP。从PATSTAT检索数据与SQL Server

为什么我想用SQL来代替Python,R或类似的东西?由于我在下载数据时有限制(最多700,000行),并且因为我介绍了在相同ID上变化的变量,我大大增加了行数。 任何人都可以帮忙吗?高度赞赏!

在此先感谢!

+1

我认为你应该提供更多信息。您输入数据的样本,以及您希望作为输出获取的内容以及您尝试的SQL代码。 – TheEsnSiavashi

+0

@TheEsisia感谢您的关注。这就是我的数据在检索后的样子:goo.gl/Uj0WBy正如您所看到的,每个docb_family_id(专利标识符)有几行,因为psn_id和referenced_pa​​t_publn_id有不同。我想得到的是以下内容:每行唯一的docb_family_id有以下几列:appln_filing_year,psn_id1(与29708696),psn_id2(与9987752),ISR_citations(通过docb_family_id iff citn_origin ='ISR'计数'ISR'引用和引用_pat_publn_id不重复,这可能吗? - luiscanyamel 5分钟前 – luiscanyamel

回答

0

要获得唯一的ID,并在同一行,你可以使用这个在具有PSN数字:

select id, psn, psn2 
from 
    (select row_number() over(order by (select 1)) as num, id, psn, lead(psn) over(order by id) as psn2 from MyTable) as T 
where num %2 == 0 
Group By id, psn, psn2 

我不明白你说的关于SEA什么。