我正在尝试用SQL server检索专利数据。我感兴趣的变量是ID,即专利标识。对于每个ID,我还想检索几个变量进行分析,例如,专利已提交的司法辖区。可以通过查看两个变量来找到这些变量: AUTH或L507EP。这些列中的值对于每个ID都不是唯一的。例如,ID 1可能有2行,因为AUTH采用2个值,例如US和JP。我希望在不丢失有价值的信息的情况下避免每个ID超过1行。因此,我要做的是在ID级别识别AUTH中的不同字符串,并创建不同的列(AUTH1和AUTH2),分别接受字符串US和JP。
为什么我想用SQL而不是Python、R或类似的语言来做这件事?因为我在下载数据时有限制(最多700,000行),并且我引入了在相同ID上变化的变量,所以我大大增加了行数。有人能帮上忙吗?非常感谢!
提前感谢!
发布于 2017-04-22 22:54:17
要获得唯一的ids并将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 我不明白你说的海。
https://stackoverflow.com/questions/43558849
复制相似问题