CPC classification subgroups

Here you can post your opinions, ask questions and share experiences on the PATSTAT product line. Please always indicate the PATSTAT edition (e.g. 2015 Autumn Edition) and the database (e.g. PATSTAT Online, MySQL, MS SQL Server, ...) you are using.
Post Reply

KenoHaverkamp
Posts: 5
Joined: Tue Aug 09, 2022 12:29 pm

CPC classification subgroups

Post by KenoHaverkamp » Thu Sep 15, 2022 4:15 pm

This might be more of a question for the EPO in general rather than PATSTAT specifically so apologies if not relevant for this forum.

I was wondering who tags the respective patent groups and what requirements firms / individuals have with regards to patent classifications (specifically CPC). Is it required for firms to tag inventions with the relevant patent groups when they apply for a patent and if so to what level?

For instance, I'd like to see the relative share of different solar cell materials (Y02E 10/541-549) in Y02E 10/50 (PV Energy). According to the EPO metadata, PV Energy also includes the subgroups 10/52 (PV systems with concentrators) and 10/56 (Power conversion systems).
My question is would the sum of different solar cell materials (10/541-549) equal to 10/50 MINUS 10/52 and 10/56? Or is there a subgroup Y02E 10/54 that would be more accurate (potentially also include solar cell material patents but that are not tagged with any of the respective subgroups?)

Similarly, I'd like to see the share of onshore and offshore patents: The revised CPC classification (revision-and-changes-on-the-cpc-y-tags-9419) refers to offshore turbines (10/727) and onshore turbines (10/728) rather than the previous groups within Y02E 10/72 (which included Blades, Gearboxes, Control, Nacelles, Onshore-, Offshore towers). Would the sum of 10/727 and -728 now equal 10/72 or would I lose some patents as they might not be classified this detailedly

Many thanks in advance and apologies for the long message.


KenoHaverkamp
Posts: 5
Joined: Tue Aug 09, 2022 12:29 pm

Re: CPC classification subgroups

Post by KenoHaverkamp » Wed Sep 21, 2022 3:28 pm

To follow up on the above, I have played around a bit and summarised the various subgroups of Y02E 10/70 (i.e. Y02E 10/72 + Y02E 10/74 + Y02E 10/76) as well as compared Y02E 10/70 to the sub of Y02E 10/727 and Y02E 10/728. Neither of these add up unfortunately.

From a preliminary look it seems to me as if the sum of groups 72,74, and 76 is usually bigger than 10/70 when aggregated by country or global level, whereas the subgroups 10/727 and 10/728 combined are smaller than 10/72.

Is this because inventions could be tagged with several (for example 10/72 AND 10/76), whereas inventors who tag 10/72 don't have to specify whether the technology relates to 10/727 or 10/728?

For reference, I am using the following code to extract the data where I adjust the relevant CPC group:

Code: Select all

SELECT person_ctry_code, 
COUNT(distinct(case when appln_filing_year = 2000 then tls201_appln.appln_id end)) as '2000',
COUNT(distinct(case when appln_filing_year = 2001 then tls201_appln.appln_id end)) as '2001',
COUNT(distinct(case when appln_filing_year = 2002 then tls201_appln.appln_id end)) as '2002',
COUNT(distinct(case when appln_filing_year = 2003 then tls201_appln.appln_id end)) as '2003',
COUNT(distinct(case when appln_filing_year = 2004 then tls201_appln.appln_id end)) as '2004',
COUNT(distinct(case when appln_filing_year = 2005 then tls201_appln.appln_id end)) as '2005',
COUNT(distinct(case when appln_filing_year = 2006 then tls201_appln.appln_id end)) as '2006',
COUNT(distinct(case when appln_filing_year = 2007 then tls201_appln.appln_id end)) as '2007',
COUNT(distinct(case when appln_filing_year = 2008 then tls201_appln.appln_id end)) as '2008',
COUNT(distinct(case when appln_filing_year = 2009 then tls201_appln.appln_id end)) as '2009',
COUNT(distinct(case when appln_filing_year = 2010 then tls201_appln.appln_id end)) as '2010',
COUNT(distinct(case when  appln_filing_year = 2011 then tls201_appln.appln_id end)) as '2011',
COUNT(distinct(case when  appln_filing_year = 2012 then tls201_appln.appln_id end)) as '2012',
COUNT(distinct(case when  appln_filing_year = 2013 then tls201_appln.appln_id end)) as '2013',
COUNT(distinct(case when  appln_filing_year = 2014 then tls201_appln.appln_id end)) as '2014',
COUNT(distinct(case when  appln_filing_year = 2015 then tls201_appln.appln_id end)) as '2015',
COUNT(distinct(case when  appln_filing_year = 2016 then tls201_appln.appln_id end)) as '2016',
COUNT(distinct(case when  appln_filing_year = 2017 then tls201_appln.appln_id end)) as '2017',
COUNT(distinct(case when  appln_filing_year = 2018 then tls201_appln.appln_id end)) as '2018',
COUNT(distinct(case when  appln_filing_year = 2019 then tls201_appln.appln_id end)) as '2019',
COUNT(distinct(case when  appln_filing_year = 2020 then tls201_appln.appln_id end)) as '2020',
count (tls201_appln.appln_id) total
FROM   tls201_appln  join tls207_pers_appln on tls201_appln.appln_id = tls207_pers_appln.appln_id
join tls206_person on tls207_pers_appln.person_id = tls206_person.person_id
join tls801_country on tls206_person.person_ctry_code = tls801_country.ctry_code
AND appln_filing_year between 2000 and 2020
and appln_auth='EP'
and applt_seq_nr > 0 
and granted = 'y'
and (tls201_appln.appln_id in (select distinct appln_id from tls224_appln_cpc WHERE cpc_class_symbol like 'Y02E  10/7%'))
group by person_ctry_code
order by total desc
Thanks,
Last edited by KenoHaverkamp on Wed Sep 21, 2022 3:30 pm, edited 1 time in total.


EPO / PATSTAT Support
Posts: 424
Joined: Thu Feb 22, 2007 5:33 pm
Contact:

Re: CPC classification subgroups

Post by EPO / PATSTAT Support » Wed Nov 23, 2022 4:10 pm

Hello Keno,
CPC classifications are generally spoken assigned by the office that publishes the patent document. Applicant or inventors have no say or influence on such matter. Though on a platform like ESPACENET, users can report a data error and indicate that they observed an "Error in document classification (eg IPC/CPC)".
The EPO will then decide whether a correction or re-classification is warranted.
Your question:
would the sum of different solar cell materials (10/541-549) equal to 10/50 MINUS 10/52 and 10/56?
Absolutely not, there are plenty of patent applications that have the general Y0210/50 without having any of the lower subclasse.
Here is a URL link in ESPACENET that proves it:
https://worldwide.espacenet.com/patent/ ... 10%2F56%22 Making use of the "FILTER" options, users can easily detect the various technologies that were not covered by the lower subgroups used for PV materials.
One example is : H02S20 --> Supporting structures for PV modules
Following the same concept: the sum of 10/727 + 10/728 is not Y02E10/72. (but that you already discovered) The higher levels are used to classify patents that would not belong to the lower groups. For the Y-tags, this is rather obvious. For CPC and IPC codes, examiners avoid these groups to become too large because the main purpose is to quickly retrieve a limited number of very relevant patent documents. Having "big" leftovers have to be avoided, but for the concept and use-cases of the Y-tags this is less relevant.
PATSTAT Support Team
EPO - Vienna
patstat @ epo.org


KenoHaverkamp
Posts: 5
Joined: Tue Aug 09, 2022 12:29 pm

Re: CPC classification subgroups

Post by KenoHaverkamp » Thu Nov 24, 2022 11:20 am

Thank you so much for clarifying!

Keno


KenoHaverkamp
Posts: 5
Joined: Tue Aug 09, 2022 12:29 pm

Re: CPC classification subgroups

Post by KenoHaverkamp » Fri Feb 03, 2023 5:46 pm

Just coming back to the query above, in order to map technological development in the wind industry, I'd like to check for patent filings of Y02E 10/70 (ideally actually two separate for Y02E 10/728 and Y02E 10/727 to distinguish between the shift from onshore to offshore, but general wind patents would also be ok for) in combination with digital technologies or energy storage (such as G06 or H01M) or hybrid systems (H02S 10/12).

I've updated the search query which seems to work but returns 0 results. Am I making a mistake somewhere? The CPC code combinations are taken from a recently published study so I would expect there to be existing applications using these combinations.

Code: Select all

SELECT person_ctry_code, 
COUNT(distinct(case when appln_filing_year = 1980 then tls201_appln.appln_id end)) as '1980',
COUNT(distinct(case when appln_filing_year = 1981 then tls201_appln.appln_id end)) as '1981',
COUNT(distinct(case when appln_filing_year = 1982 then tls201_appln.appln_id end)) as '1982',
COUNT(distinct(case when appln_filing_year = 1983 then tls201_appln.appln_id end)) as '1983',
COUNT(distinct(case when appln_filing_year = 1984 then tls201_appln.appln_id end)) as '1984',
COUNT(distinct(case when appln_filing_year = 1985 then tls201_appln.appln_id end)) as '1985',
COUNT(distinct(case when appln_filing_year = 1986 then tls201_appln.appln_id end)) as '1986',
COUNT(distinct(case when appln_filing_year = 1987 then tls201_appln.appln_id end)) as '1987',
COUNT(distinct(case when appln_filing_year = 1988 then tls201_appln.appln_id end)) as '1988',
COUNT(distinct(case when appln_filing_year = 1989 then tls201_appln.appln_id end)) as '1989',
COUNT(distinct(case when  appln_filing_year = 1990 then tls201_appln.appln_id end)) as '1990',
COUNT(distinct(case when  appln_filing_year = 1991 then tls201_appln.appln_id end)) as '1991',
COUNT(distinct(case when  appln_filing_year = 1992 then tls201_appln.appln_id end)) as '1992',
COUNT(distinct(case when  appln_filing_year = 1993 then tls201_appln.appln_id end)) as '1993',
COUNT(distinct(case when  appln_filing_year = 1994 then tls201_appln.appln_id end)) as '1994',
COUNT(distinct(case when  appln_filing_year = 1995 then tls201_appln.appln_id end)) as '1995',
COUNT(distinct(case when  appln_filing_year = 1996 then tls201_appln.appln_id end)) as '1996',
COUNT(distinct(case when  appln_filing_year = 1997 then tls201_appln.appln_id end)) as '1997',
COUNT(distinct(case when  appln_filing_year = 1998 then tls201_appln.appln_id end)) as '1998',
COUNT(distinct(case when  appln_filing_year = 1999 then tls201_appln.appln_id end)) as '1999',
COUNT(distinct(case when appln_filing_year = 2000 then tls201_appln.appln_id end)) as '2000',
COUNT(distinct(case when appln_filing_year = 2001 then tls201_appln.appln_id end)) as '2001',
COUNT(distinct(case when appln_filing_year = 2002 then tls201_appln.appln_id end)) as '2002',
COUNT(distinct(case when appln_filing_year = 2003 then tls201_appln.appln_id end)) as '2003',
COUNT(distinct(case when appln_filing_year = 2004 then tls201_appln.appln_id end)) as '2004',
COUNT(distinct(case when appln_filing_year = 2005 then tls201_appln.appln_id end)) as '2005',
COUNT(distinct(case when appln_filing_year = 2006 then tls201_appln.appln_id end)) as '2006',
COUNT(distinct(case when appln_filing_year = 2007 then tls201_appln.appln_id end)) as '2007',
COUNT(distinct(case when appln_filing_year = 2008 then tls201_appln.appln_id end)) as '2008',
COUNT(distinct(case when appln_filing_year = 2009 then tls201_appln.appln_id end)) as '2009',
COUNT(distinct(case when appln_filing_year = 2010 then tls201_appln.appln_id end)) as '2010',
COUNT(distinct(case when  appln_filing_year = 2011 then tls201_appln.appln_id end)) as '2011',
COUNT(distinct(case when  appln_filing_year = 2012 then tls201_appln.appln_id end)) as '2012',
COUNT(distinct(case when  appln_filing_year = 2013 then tls201_appln.appln_id end)) as '2013',
COUNT(distinct(case when  appln_filing_year = 2014 then tls201_appln.appln_id end)) as '2014',
COUNT(distinct(case when  appln_filing_year = 2015 then tls201_appln.appln_id end)) as '2015',
COUNT(distinct(case when  appln_filing_year = 2016 then tls201_appln.appln_id end)) as '2016',
COUNT(distinct(case when  appln_filing_year = 2017 then tls201_appln.appln_id end)) as '2017',
COUNT(distinct(case when  appln_filing_year = 2018 then tls201_appln.appln_id end)) as '2018',
COUNT(distinct(case when  appln_filing_year = 2019 then tls201_appln.appln_id end)) as '2019',
COUNT(distinct(case when  appln_filing_year = 2020 then tls201_appln.appln_id end)) as '2020',
count (tls201_appln.appln_id) total
FROM   tls201_appln  join tls207_pers_appln on tls201_appln.appln_id = tls207_pers_appln.appln_id
join tls206_person on tls207_pers_appln.person_id = tls206_person.person_id
join tls801_country on tls206_person.person_ctry_code = tls801_country.ctry_code
AND appln_filing_year between 1980 and 2020
and applt_seq_nr > 0 
and granted = 'y'
and (tls201_appln.appln_id in (select distinct appln_id from tls224_appln_cpc WHERE cpc_class_symbol like 'Y02E  10/70%' 
      AND (cpc_class_symbol LIKE 'G06%' 
      OR cpc_class_symbol LIKE 'H021M%')
      OR cpc_class_symbol LIKE 'H01S 10/12%'))
group by person_ctry_code
order by total desc

If I may, I would also like to connect this to another question. As the next step I would like to see how many of these 'high-tech' patents specific German firms in the wind industry have filed during the same time. For simplicity, let's just take the biggest ones 'Enercon', 'Siemens', and 'Nordex.
Could I simply replace person_ctry_code with psn_name and use the following adjusted code?

Code: Select all

SELECT psn_name, 
COUNT(distinct(case when appln_filing_year = 1980 then tls201_appln.appln_id end)) as '1980',
COUNT(distinct(case when appln_filing_year = 1981 then tls201_appln.appln_id end)) as '1981',
COUNT(distinct(case when appln_filing_year = 1982 then tls201_appln.appln_id end)) as '1982',
COUNT(distinct(case when appln_filing_year = 1983 then tls201_appln.appln_id end)) as '1983',
COUNT(distinct(case when appln_filing_year = 1984 then tls201_appln.appln_id end)) as '1984',
COUNT(distinct(case when appln_filing_year = 1985 then tls201_appln.appln_id end)) as '1985',
COUNT(distinct(case when appln_filing_year = 1986 then tls201_appln.appln_id end)) as '1986',
COUNT(distinct(case when appln_filing_year = 1987 then tls201_appln.appln_id end)) as '1987',
COUNT(distinct(case when appln_filing_year = 1988 then tls201_appln.appln_id end)) as '1988',
COUNT(distinct(case when appln_filing_year = 1989 then tls201_appln.appln_id end)) as '1989',
COUNT(distinct(case when appln_filing_year = 1990 then tls201_appln.appln_id end)) as '1990',
COUNT(distinct(case when appln_filing_year = 1991 then tls201_appln.appln_id end)) as '1991',
COUNT(distinct(case when appln_filing_year = 1992 then tls201_appln.appln_id end)) as '1992',
COUNT(distinct(case when appln_filing_year = 1993 then tls201_appln.appln_id end)) as '1993',
COUNT(distinct(case when appln_filing_year = 1994 then tls201_appln.appln_id end)) as '1994',
COUNT(distinct(case when appln_filing_year = 1995 then tls201_appln.appln_id end)) as '1995',
COUNT(distinct(case when appln_filing_year = 1996 then tls201_appln.appln_id end)) as '1996',
COUNT(distinct(case when appln_filing_year = 1997 then tls201_appln.appln_id end)) as '1997',
COUNT(distinct(case when appln_filing_year = 1998 then tls201_appln.appln_id end)) as '1998',
COUNT(distinct(case when appln_filing_year = 1999 then tls201_appln.appln_id end)) as '1999',
COUNT(distinct(case when appln_filing_year = 2000 then tls201_appln.appln_id end)) as '2000',
COUNT(distinct(case when appln_filing_year = 2001 then tls201_appln.appln_id end)) as '2001',
COUNT(distinct(case when appln_filing_year = 2002 then tls201_appln.appln_id end)) as '2002',
COUNT(distinct(case when appln_filing_year = 2003 then tls201_appln.appln_id end)) as '2003',
COUNT(distinct(case when appln_filing_year = 2004 then tls201_appln.appln_id end)) as '2004',
COUNT(distinct(case when appln_filing_year = 2005 then tls201_appln.appln_id end)) as '2005',
COUNT(distinct(case when appln_filing_year = 2006 then tls201_appln.appln_id end)) as '2006',
COUNT(distinct(case when appln_filing_year = 2007 then tls201_appln.appln_id end)) as '2007',
COUNT(distinct(case when appln_filing_year = 2008 then tls201_appln.appln_id end)) as '2008',
COUNT(distinct(case when appln_filing_year = 2009 then tls201_appln.appln_id end)) as '2009',
COUNT(distinct(case when appln_filing_year = 2010 then tls201_appln.appln_id end)) as '2010',
COUNT(distinct(case when  appln_filing_year = 2011 then tls201_appln.appln_id end)) as '2011',
COUNT(distinct(case when  appln_filing_year = 2012 then tls201_appln.appln_id end)) as '2012',
COUNT(distinct(case when  appln_filing_year = 2013 then tls201_appln.appln_id end)) as '2013',
COUNT(distinct(case when  appln_filing_year = 2014 then tls201_appln.appln_id end)) as '2014',
COUNT(distinct(case when  appln_filing_year = 2015 then tls201_appln.appln_id end)) as '2015',
COUNT(distinct(case when  appln_filing_year = 2016 then tls201_appln.appln_id end)) as '2016',
COUNT(distinct(case when  appln_filing_year = 2017 then tls201_appln.appln_id end)) as '2017',
COUNT(distinct(case when  appln_filing_year = 2018 then tls201_appln.appln_id end)) as '2018',
COUNT(distinct(case when  appln_filing_year = 2019 then tls201_appln.appln_id end)) as '2019',
COUNT(distinct(case when  appln_filing_year = 2020 then tls201_appln.appln_id end)) as '2020',
count (tls201_appln.appln_id) total
FROM   tls201_appln  join tls207_pers_appln on tls201_appln.appln_id = tls207_pers_appln.appln_id
join tls206_person on tls207_pers_appln.person_id = tls206_person.person_id
join tls801_country on tls206_person.person_ctry_code = tls801_country.ctry_code
AND appln_filing_year between 1980 and 2020
and applt_seq_nr > 0 
and granted = 'y'
and (tls201_appln.appln_id in (select distinct appln_id from tls224_appln_cpc WHERE cpc_class_symbol like 'Y02E  10/70%' 
      AND (cpc_class_symbol LIKE 'G06%' 
      OR cpc_class_symbol LIKE 'H021M%')
      OR cpc_class_symbol LIKE 'H01S 10/12%'))
AND   psn_name like  '%Enercon%' OR '%Siemens%' OR '%Nordex%' 
GROUP BY  psn_name
ORDER BY total desc
Many thanks for your help as always!


EPO / PATSTAT Support
Posts: 424
Joined: Thu Feb 22, 2007 5:33 pm
Contact:

Re: CPC classification subgroups

Post by EPO / PATSTAT Support » Tue Feb 14, 2023 4:37 pm

On the first query, you forgot the WHERE clause and as a result all the conditions became part of the JOIN condition. (and some small mistakes on your CPC codes.)

Code: Select all

SELECT person_ctry_code, 
COUNT(distinct(case when appln_filing_year = 1980 then tls201_appln.appln_id end)) as '1980',
COUNT(distinct(case when appln_filing_year = 1981 then tls201_appln.appln_id end)) as '1981',
COUNT(distinct(case when appln_filing_year = 1982 then tls201_appln.appln_id end)) as '1982',
COUNT(distinct(case when appln_filing_year = 1983 then tls201_appln.appln_id end)) as '1983',
COUNT(distinct(case when appln_filing_year = 1984 then tls201_appln.appln_id end)) as '1984',
COUNT(distinct(case when appln_filing_year = 1985 then tls201_appln.appln_id end)) as '1985',
COUNT(distinct(case when appln_filing_year = 1986 then tls201_appln.appln_id end)) as '1986',
COUNT(distinct(case when appln_filing_year = 1987 then tls201_appln.appln_id end)) as '1987',
COUNT(distinct(case when appln_filing_year = 1988 then tls201_appln.appln_id end)) as '1988',
COUNT(distinct(case when appln_filing_year = 1989 then tls201_appln.appln_id end)) as '1989',
COUNT(distinct(case when  appln_filing_year = 1990 then tls201_appln.appln_id end)) as '1990',
COUNT(distinct(case when  appln_filing_year = 1991 then tls201_appln.appln_id end)) as '1991',
COUNT(distinct(case when  appln_filing_year = 1992 then tls201_appln.appln_id end)) as '1992',
COUNT(distinct(case when  appln_filing_year = 1993 then tls201_appln.appln_id end)) as '1993',
COUNT(distinct(case when  appln_filing_year = 1994 then tls201_appln.appln_id end)) as '1994',
COUNT(distinct(case when  appln_filing_year = 1995 then tls201_appln.appln_id end)) as '1995',
COUNT(distinct(case when  appln_filing_year = 1996 then tls201_appln.appln_id end)) as '1996',
COUNT(distinct(case when  appln_filing_year = 1997 then tls201_appln.appln_id end)) as '1997',
COUNT(distinct(case when  appln_filing_year = 1998 then tls201_appln.appln_id end)) as '1998',
COUNT(distinct(case when  appln_filing_year = 1999 then tls201_appln.appln_id end)) as '1999',
COUNT(distinct(case when appln_filing_year = 2000 then tls201_appln.appln_id end)) as '2000',
COUNT(distinct(case when appln_filing_year = 2001 then tls201_appln.appln_id end)) as '2001',
COUNT(distinct(case when appln_filing_year = 2002 then tls201_appln.appln_id end)) as '2002',
COUNT(distinct(case when appln_filing_year = 2003 then tls201_appln.appln_id end)) as '2003',
COUNT(distinct(case when appln_filing_year = 2004 then tls201_appln.appln_id end)) as '2004',
COUNT(distinct(case when appln_filing_year = 2005 then tls201_appln.appln_id end)) as '2005',
COUNT(distinct(case when appln_filing_year = 2006 then tls201_appln.appln_id end)) as '2006',
COUNT(distinct(case when appln_filing_year = 2007 then tls201_appln.appln_id end)) as '2007',
COUNT(distinct(case when appln_filing_year = 2008 then tls201_appln.appln_id end)) as '2008',
COUNT(distinct(case when appln_filing_year = 2009 then tls201_appln.appln_id end)) as '2009',
COUNT(distinct(case when appln_filing_year = 2010 then tls201_appln.appln_id end)) as '2010',
COUNT(distinct(case when  appln_filing_year = 2011 then tls201_appln.appln_id end)) as '2011',
COUNT(distinct(case when  appln_filing_year = 2012 then tls201_appln.appln_id end)) as '2012',
COUNT(distinct(case when  appln_filing_year = 2013 then tls201_appln.appln_id end)) as '2013',
COUNT(distinct(case when  appln_filing_year = 2014 then tls201_appln.appln_id end)) as '2014',
COUNT(distinct(case when  appln_filing_year = 2015 then tls201_appln.appln_id end)) as '2015',
COUNT(distinct(case when  appln_filing_year = 2016 then tls201_appln.appln_id end)) as '2016',
COUNT(distinct(case when  appln_filing_year = 2017 then tls201_appln.appln_id end)) as '2017',
COUNT(distinct(case when  appln_filing_year = 2018 then tls201_appln.appln_id end)) as '2018',
COUNT(distinct(case when  appln_filing_year = 2019 then tls201_appln.appln_id end)) as '2019',
COUNT(distinct(case when  appln_filing_year = 2020 then tls201_appln.appln_id end)) as '2020',
count (tls201_appln.appln_id) total
FROM   tls201_appln  join tls207_pers_appln on tls201_appln.appln_id = tls207_pers_appln.appln_id
join tls206_person on tls207_pers_appln.person_id = tls206_person.person_id
join tls801_country on tls206_person.person_ctry_code = tls801_country.ctry_code
WHERE
appln_filing_year between 1980 and 2020
and applt_seq_nr > 0 
and granted = 'Y'
and (tls201_appln.appln_id in (select distinct appln_id from tls224_appln_cpc WHERE cpc_class_symbol like 'Y02E  10/7%' 
      AND (cpc_class_symbol LIKE 'G06%' 
      OR cpc_class_symbol LIKE 'H01M%')
      OR cpc_class_symbol = 'H02S  10/12'))
group by person_ctry_code
order by total desc
Observations on the results. The "blank" person_ctry_code are 99% Chinese applicants having filed in China. We don't get the country code from the Chinese patent office, so it is difficult to have a clear picture on the nationality of the inventors and applicants that file in China. This can seriously skew the results when doing analysis. We therefore sometimes use a concept of only taking into account "international patents"; excluding all patents that are single national filings.

On the second query.
Same small mistake - no WHERE clause-. Have a look at the result of the query below to find the "top filers" according to your criteria. Maybe you want to add ENERCON (ALOYS WOBBEN) with WOBBEN PROPERTIES which is the IP holding company. Also the list includes some companies which I would not directly expect to be linked to wind energy. This is probably due to your selection of CPC codes. Maybe you want to reconsider the search strategy.

Code: Select all

SELECT psn_name, 
COUNT(distinct(case when appln_filing_year = 1980 then tls201_appln.appln_id end)) as '1980',
COUNT(distinct(case when appln_filing_year = 1981 then tls201_appln.appln_id end)) as '1981',
COUNT(distinct(case when appln_filing_year = 1982 then tls201_appln.appln_id end)) as '1982',
COUNT(distinct(case when appln_filing_year = 1983 then tls201_appln.appln_id end)) as '1983',
COUNT(distinct(case when appln_filing_year = 1984 then tls201_appln.appln_id end)) as '1984',
COUNT(distinct(case when appln_filing_year = 1985 then tls201_appln.appln_id end)) as '1985',
COUNT(distinct(case when appln_filing_year = 1986 then tls201_appln.appln_id end)) as '1986',
COUNT(distinct(case when appln_filing_year = 1987 then tls201_appln.appln_id end)) as '1987',
COUNT(distinct(case when appln_filing_year = 1988 then tls201_appln.appln_id end)) as '1988',
COUNT(distinct(case when appln_filing_year = 1989 then tls201_appln.appln_id end)) as '1989',
COUNT(distinct(case when  appln_filing_year = 1990 then tls201_appln.appln_id end)) as '1990',
COUNT(distinct(case when  appln_filing_year = 1991 then tls201_appln.appln_id end)) as '1991',
COUNT(distinct(case when  appln_filing_year = 1992 then tls201_appln.appln_id end)) as '1992',
COUNT(distinct(case when  appln_filing_year = 1993 then tls201_appln.appln_id end)) as '1993',
COUNT(distinct(case when  appln_filing_year = 1994 then tls201_appln.appln_id end)) as '1994',
COUNT(distinct(case when  appln_filing_year = 1995 then tls201_appln.appln_id end)) as '1995',
COUNT(distinct(case when  appln_filing_year = 1996 then tls201_appln.appln_id end)) as '1996',
COUNT(distinct(case when  appln_filing_year = 1997 then tls201_appln.appln_id end)) as '1997',
COUNT(distinct(case when  appln_filing_year = 1998 then tls201_appln.appln_id end)) as '1998',
COUNT(distinct(case when  appln_filing_year = 1999 then tls201_appln.appln_id end)) as '1999',
COUNT(distinct(case when appln_filing_year = 2000 then tls201_appln.appln_id end)) as '2000',
COUNT(distinct(case when appln_filing_year = 2001 then tls201_appln.appln_id end)) as '2001',
COUNT(distinct(case when appln_filing_year = 2002 then tls201_appln.appln_id end)) as '2002',
COUNT(distinct(case when appln_filing_year = 2003 then tls201_appln.appln_id end)) as '2003',
COUNT(distinct(case when appln_filing_year = 2004 then tls201_appln.appln_id end)) as '2004',
COUNT(distinct(case when appln_filing_year = 2005 then tls201_appln.appln_id end)) as '2005',
COUNT(distinct(case when appln_filing_year = 2006 then tls201_appln.appln_id end)) as '2006',
COUNT(distinct(case when appln_filing_year = 2007 then tls201_appln.appln_id end)) as '2007',
COUNT(distinct(case when appln_filing_year = 2008 then tls201_appln.appln_id end)) as '2008',
COUNT(distinct(case when appln_filing_year = 2009 then tls201_appln.appln_id end)) as '2009',
COUNT(distinct(case when appln_filing_year = 2010 then tls201_appln.appln_id end)) as '2010',
COUNT(distinct(case when  appln_filing_year = 2011 then tls201_appln.appln_id end)) as '2011',
COUNT(distinct(case when  appln_filing_year = 2012 then tls201_appln.appln_id end)) as '2012',
COUNT(distinct(case when  appln_filing_year = 2013 then tls201_appln.appln_id end)) as '2013',
COUNT(distinct(case when  appln_filing_year = 2014 then tls201_appln.appln_id end)) as '2014',
COUNT(distinct(case when  appln_filing_year = 2015 then tls201_appln.appln_id end)) as '2015',
COUNT(distinct(case when  appln_filing_year = 2016 then tls201_appln.appln_id end)) as '2016',
COUNT(distinct(case when  appln_filing_year = 2017 then tls201_appln.appln_id end)) as '2017',
COUNT(distinct(case when  appln_filing_year = 2018 then tls201_appln.appln_id end)) as '2018',
COUNT(distinct(case when  appln_filing_year = 2019 then tls201_appln.appln_id end)) as '2019',
COUNT(distinct(case when  appln_filing_year = 2020 then tls201_appln.appln_id end)) as '2020',
count (tls201_appln.appln_id) total
FROM   tls201_appln  join tls207_pers_appln on tls201_appln.appln_id = tls207_pers_appln.appln_id
join tls206_person on tls207_pers_appln.person_id = tls206_person.person_id
join tls801_country on tls206_person.person_ctry_code = tls801_country.ctry_code
WHERE
appln_filing_year between 1980 and 2020
and applt_seq_nr > 0 
and granted = 'Y'
and (tls201_appln.appln_id in (select distinct appln_id from tls224_appln_cpc WHERE cpc_class_symbol like 'Y02E  10/7%' 
      AND (cpc_class_symbol LIKE 'G06%' 
      OR cpc_class_symbol LIKE 'H01M%')
      OR cpc_class_symbol = 'H02S  10/12'))
--	  AND   (psn_name like'%Enercon%' OR psn_name like '%Siemens%' OR psn_name like '%Nordex%' )
GROUP BY  psn_name
ORDER BY total desc
PATSTAT Support Team
EPO - Vienna
patstat @ epo.org


Post Reply