---------------------------------------------------- -- Shortcuts for various definitions in stats db --- -- since these statements are executed using Impala, -- we'll have to compute the stats for the tables we use ---------------------------------------------------- COMPUTE STATS result; COMPUTE STATS result_sources; COMPUTE STATS datasource; COMPUTE STATS result_datasources; COMPUTE STATS datasource_sources; COMPUTE STATS country; COMPUTE STATS result_organization; COMPUTE STATS organization; COMPUTE STATS datasource_organizations; -- Peer reviewed: -- Results that have been collected from Crossref create table ${stats_db_name}.result_peerreviewed as with peer_reviewed as ( select distinct r.id as id from ${stats_db_name}.result r join ${stats_db_name}.result_sources rs on rs.id=r.id join ${stats_db_name}.datasource d on d.id=rs.datasource where d.name='Crossref') select distinct peer_reviewed.id as id, true as peer_reviewed from peer_reviewed union all select distinct r.id as id, false as peer_reviewed from ${stats_db_name}.result r where r.id not in (select id from peer_reviewed); COMPUTE STATS result_peerreviewed; -- Green OA: -- OA results that are hosted by an Institutional repository and have NOT been harvested from a DOAJ journal. create table ${stats_db_name}.result_greenoa as with result_green as ( select distinct r.id as id from ${stats_db_name}.result r join ${stats_db_name}.result_datasources rd on rd.id=r.id join ${stats_db_name}.datasource d on d.id=rd.datasource where r.bestlicence in ('Open Access', 'Open Source') and d.type='Institutional Repository' and not exists ( select 1 from ${stats_db_name}.result_datasources rd join ${stats_db_name}.datasource d on rd.datasource=d.id join ${stats_db_name}.datasource_sources sds on sds.id=d.id join ${stats_db_name}.datasource sd on sd.id=sds.datasource where sd.name='DOAJ-ARTICLES' and rd.id=r.id)) select distinct result_green.id, true as green from result_green union all select distinct r.id as id, false as green from ${stats_db_name}.result r where r.id not in (select id from result_green); COMPUTE STATS result_greenoa; -- GOLD OA: -- OA results that have been harvested from a DOAJ journal. create table ${stats_db_name}.result_gold as with result_gold as ( select distinct r.id as id from ${stats_db_name}.result r join ${stats_db_name}.result_datasources rd on rd.id=r.id join ${stats_db_name}.datasource d on d.id=rd.datasource join ${stats_db_name}.datasource_sources sds on sds.id=d.id join ${stats_db_name}.datasource sd on sd.id=sds.datasource where r.type='publication' and r.bestlicence='Open Access' and sd.name='DOAJ-Articles') select distinct result_gold.id, true as gold from result_gold union all select distinct r.id, false as gold from ${stats_db_name}.result r where r.id not in (select id from result_gold); COMPUTE STATS result_gold; -- shortcut result-country through the organization affiliation create table ${stats_db_name}.result_affiliated_country as select r.id as id, o.country as country from ${stats_db_name}.result r join ${stats_db_name}.result_organization ro on ro.id=r.id join ${stats_db_name}.organization o on o.id=ro.organization where o.country is not null and o.country!=''; COMPUTE STATS result_affiliated_country; -- shortcut result-country through datasource of deposition create table ${stats_db_name}.result_deposited_country as select r.id as id, o.country as country from ${stats_db_name}.result r join ${stats_db_name}.result_datasources rd on rd.id=r.id join ${stats_db_name}.datasource d on d.id=rd.datasource join ${stats_db_name}.datasource_organizations dor on dor.id=d.id join ${stats_db_name}.organization o on o.id=dor.organization where o.country is not null and o.country!=''; COMPUTE STATS result_deposited_country;