Revision 58335
Added by Antonis Lempesis about 4 years ago
stats_db_schema.sql | ||
---|---|---|
51 | 51 |
dateofvalidation text, |
52 | 52 |
yearofvalidation integer, |
53 | 53 |
harvested TEXT DEFAULT 'false', |
54 |
websiteurl TEXT, |
|
54 | 55 |
piwik_id integer |
55 | 56 |
); |
56 | 57 |
|
... | ... | |
539 | 540 |
CREATE INDEX dtsrc_org_org ON shadow.datasource_organizations USING btree (organization COLLATE pg_catalog."default"); |
540 | 541 |
|
541 | 542 |
CREATE INDEX result_authors ON "shadow".result USING btree (authors); |
542 |
CREATE INDEX result_id ON "shadow".result USING btree (id);
|
|
543 |
CREATE INDEX result_year ON "shadow".result USING btree (year);
|
|
544 |
CREATE INDEX result_date ON "shadow"."result" USING btree ("date");
|
|
545 |
CREATE INDEX result_type ON "shadow"."result" USING btree ("type");
|
|
543 |
CREATE INDEX result_id ON "shadow".result USING btree (id); |
|
544 |
CREATE INDEX result_year ON "shadow".result USING btree (year); |
|
545 |
CREATE INDEX result_date ON "shadow"."result" USING btree ("date"); |
|
546 |
CREATE INDEX result_type ON "shadow"."result" USING btree ("type"); |
|
546 | 547 |
CREATE INDEX res_bestlicense ON shadow.result USING btree (bestlicense COLLATE pg_catalog."default"); |
547 |
CREATE INDEX result_funders_idx ON shadow.result USING gin (funders); |
|
548 |
CREATE INDEX result_funding_lvl0_idx ON shadow.result USING gin (funding_lvl0); |
|
549 |
CREATE INDEX result_projects_idx ON shadow.result USING gin (projects); |
|
548 |
-- CREATE INDEX result_funders_idx ON shadow.result USING gin (funders);
|
|
549 |
-- CREATE INDEX result_funding_lvl0_idx ON shadow.result USING gin (funding_lvl0);
|
|
550 |
-- CREATE INDEX result_projects_idx ON shadow.result USING gin (projects);
|
|
550 | 551 |
-- CREATE INDEX result_datasources_idx ON shadow.result USING gin (datasources); |
551 | 552 |
|
552 |
|
|
553 | 553 |
CREATE INDEX project_acronym ON "shadow"."project" USING btree (acronym); |
554 | 554 |
CREATE INDEX project_enddate ON "shadow"."project" USING btree (enddate); |
555 | 555 |
CREATE INDEX project_id ON "shadow"."project" USING btree (id); |
... | ... | |
612 | 612 |
CREATE OR REPLACE VIEW shadow.result_projects AS SELECT shadow.project_results.result AS id, |
613 | 613 |
shadow.project_results.id AS project, ( select to_date("shadow"."result"."date", 'YYYY-MM-DD')- to_date("shadow"."project"."enddate", 'YYYY-MM-DD') |
614 | 614 |
from shadow.result, shadow.project where shadow.result.id = shadow.project_results.result |
615 |
and shadow.project_results.id= shadow.project.id and shadow.result.type='publication' )
|
|
615 |
and shadow.project_results.id= shadow.project.id) |
|
616 | 616 |
as daysfromend FROM shadow.project_results; |
617 | 617 |
|
618 | 618 |
CREATE OR REPLACE VIEW "shadow".datasource_topics AS |
... | ... | |
628 | 628 |
CREATE or replace FUNCTION "shadow".create_charts() RETURNS void LANGUAGE plpgsql AS $$ |
629 | 629 |
BEGIN |
630 | 630 |
-- country nums |
631 |
-- CREATE TABLE "shadow".numbers_country AS SELECT org.country AS country, count(distinct rd.datasource) AS datasources, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND d.id=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country;
|
|
632 |
-- --
|
|
633 |
-- -- -- country charts
|
|
634 |
-- CREATE TABLE "shadow".chart_country_year AS SELECT org.country AS country, r.year AS year, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' and r.year>='1990' AND r.year<=extract(YEAR from now()) group by org.country, r.year ORDER BY org.country, r.year;
|
|
635 |
-- CREATE TABLE "shadow".chart_country_datasources AS SELECT org.country AS country, d.name AS datasource, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND d.id=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country, d.name ORDER BY org.country, count(distinct r.id) DESC;
|
|
636 |
-- CREATE TABLE "shadow".chart_country_type AS SELECT org.country AS country, rc.type AS type, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".result_classifications rc, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND r.id=rc.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country, rc.type;
|
|
637 |
-- CREATE TABLE "shadow".chart_country_fp7 AS SELECT org.country AS country, r.year AS year, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org, "shadow".project_results pr, "shadow".project p WHERE r.id=rd.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.id=pr.result AND pr.id=p.id AND p.funding_lvl0='FP7' AND r.type='publication' AND r.year>='1990' AND r.year<=extract(YEAR from now()) GROUP BY org.country, r.year ORDER BY org.country, r.year;
|
|
638 |
-- --
|
|
639 |
-- -- -- datasource charts
|
|
640 |
-- CREATE TABLE "shadow".chart_datasource_type AS SELECT rd.datasource, rc.type, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".result_classifications rc WHERE rd.id=rc.id GROUP BY rd.datasource, rc.type;
|
|
641 |
-- CREATE TABLE "shadow".chart_datasource_year AS SELECT rd.datasource, r.year, count(distinct rd.id) FROM "shadow".result r, "shadow".result_datasources rd WHERE rd.id=r.id GROUP By rd.datasource, r.year;
|
|
642 |
-- CREATE TABLE "shadow".chart_datasource_funders AS SELECT rd.datasource, p.funder, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr WHERE p.id=pr.id AND pr.result=rd.id GROUP BY rd.datasource, p.funder;
|
|
643 |
-- CREATE TABLE "shadow".chart_datasource_projects_pubs AS SELECT rd.datasource, p.title, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr, "shadow".result r WHERE p.id=pr.id AND pr.result=rd.id AND pr.result=r.id AND r.type='publication' GROUP BY rd.datasource, p.title;
|
|
644 |
-- CREATE TABLE "shadow".chart_datasource_projects_data AS SELECT rd.datasource, p.title, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr, "shadow".result r WHERE p.id=pr.id AND pr.result=rd.id AND pr.result=r.id and r.type='dataset' GROUP BY rd.datasource, p.title;
|
|
645 |
-- --
|
|
646 |
-- -- project charts
|
|
647 |
-- CREATE TABLE "shadow".chart_project_year AS SELECT p.id, r.year, count( distinct r.id) FROM "shadow".result r, "shadow".project_results pr, "shadow".project p WHERE r.id=pr.result AND p.id=pr.id AND r.year>=p.start_year GROUP BY p.id, r.year;
|
|
648 |
-- CREATE TABLE "shadow".chart_project_license AS SELECT pr.id, r.bestlicense, count(distinct r.id) FROM "shadow".result r, "shadow".project_results pr WHERE r.id=pr.result AND r.type='publication' GROUP BY pr.id, r.bestlicense;
|
|
649 |
-- CREATE TABLE "shadow".chart_project_repos AS SELECT pr.id, d.name, count (distinct r.id) FROM "shadow".result r, "shadow".project_results pr, "shadow".datasource d, "shadow".datasource_results dr WHERE r.id=dr.result AND d.id=dr.id AND r.id=pr.result AND r.type='publication' GROUP BY pr.id, d.name;
|
|
631 |
CREATE TABLE "shadow".numbers_country AS SELECT org.country AS country, count(distinct rd.datasource) AS datasources, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND d.id=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country; |
|
632 |
-- |
|
633 |
-- -- country charts |
|
634 |
CREATE TABLE "shadow".chart_country_year AS SELECT org.country AS country, r.year AS year, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' and r.year>='1990' AND r.year<=extract(YEAR from now()) group by org.country, r.year ORDER BY org.country, r.year; |
|
635 |
CREATE TABLE "shadow".chart_country_datasources AS SELECT org.country AS country, d.name AS datasource, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND rd.datasource=d.id AND d.id=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country, d.name ORDER BY org.country, count(distinct r.id) DESC; |
|
636 |
CREATE TABLE "shadow".chart_country_type AS SELECT org.country AS country, rc.type AS type, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".result_classifications rc, "shadow".datasource_organizations dor, "shadow".organization org WHERE r.id=rd.id AND r.id=rc.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.type='publication' AND r.bestlicense='Open Access' GROUP BY org.country, rc.type; |
|
637 |
CREATE TABLE "shadow".chart_country_fp7 AS SELECT org.country AS country, r.year AS year, count(distinct r.id) AS publications FROM "shadow".result r, "shadow".result_datasources rd, "shadow".datasource d, "shadow".datasource_organizations dor, "shadow".organization org, "shadow".project_results pr, "shadow".project p WHERE r.id=rd.id AND rd.datasource=d.id AND rd.datasource=dor.id AND dor.organization=org.id AND r.id=pr.result AND pr.id=p.id AND p.funding_lvl0='FP7' AND r.type='publication' AND r.year>='1990' AND r.year<=extract(YEAR from now()) GROUP BY org.country, r.year ORDER BY org.country, r.year; |
|
638 |
-- |
|
639 |
-- -- datasource charts |
|
640 |
CREATE TABLE "shadow".chart_datasource_type AS SELECT rd.datasource, rc.type, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".result_classifications rc WHERE rd.id=rc.id GROUP BY rd.datasource, rc.type; |
|
641 |
CREATE TABLE "shadow".chart_datasource_year AS SELECT rd.datasource, r.year, count(distinct rd.id) FROM "shadow".result r, "shadow".result_datasources rd WHERE rd.id=r.id GROUP By rd.datasource, r.year; |
|
642 |
CREATE TABLE "shadow".chart_datasource_funders AS SELECT rd.datasource, p.funder, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr WHERE p.id=pr.id AND pr.result=rd.id GROUP BY rd.datasource, p.funder; |
|
643 |
CREATE TABLE "shadow".chart_datasource_projects_pubs AS SELECT rd.datasource, p.title, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr, "shadow".result r WHERE p.id=pr.id AND pr.result=rd.id AND pr.result=r.id AND r.type='publication' GROUP BY rd.datasource, p.title; |
|
644 |
CREATE TABLE "shadow".chart_datasource_projects_data AS SELECT rd.datasource, p.title, count(distinct rd.id) FROM "shadow".result_datasources rd, "shadow".project p, "shadow".project_results pr, "shadow".result r WHERE p.id=pr.id AND pr.result=rd.id AND pr.result=r.id and r.type='dataset' GROUP BY rd.datasource, p.title; |
|
645 |
-- |
|
646 |
-- project charts |
|
647 |
CREATE TABLE "shadow".chart_project_year AS SELECT p.id, r.year, count( distinct r.id) FROM "shadow".result r, "shadow".project_results pr, "shadow".project p WHERE r.id=pr.result AND p.id=pr.id AND r.year>=p.start_year GROUP BY p.id, r.year; |
|
648 |
CREATE TABLE "shadow".chart_project_license AS SELECT pr.id, r.bestlicense, count(distinct r.id) FROM "shadow".result r, "shadow".project_results pr WHERE r.id=pr.result AND r.type='publication' GROUP BY pr.id, r.bestlicense; |
|
649 |
CREATE TABLE "shadow".chart_project_repos AS SELECT pr.id, d.name, count (distinct r.id) FROM "shadow".result r, "shadow".project_results pr, "shadow".datasource d, "shadow".datasource_results dr WHERE r.id=dr.result AND d.id=dr.id AND r.id=pr.result AND r.type='publication' GROUP BY pr.id, d.name; |
|
650 | 650 |
END;$$; |
651 | 651 |
|
652 | 652 |
-- |
... | ... | |
655 | 655 |
CREATE or replace FUNCTION "shadow".create_chart_indexes() RETURNS void LANGUAGE plpgsql AS $$ |
656 | 656 |
BEGIN |
657 | 657 |
-- country nums |
658 |
-- CREATE INDEX numbers_country_country ON "shadow".numbers_country USING btree(country);
|
|
658 |
CREATE INDEX numbers_country_country ON "shadow".numbers_country USING btree(country); |
|
659 | 659 |
|
660 |
-- country charts
|
|
661 |
-- CREATE INDEX chart_country_year_country ON "shadow".chart_country_year USING btree(country);
|
|
662 |
-- CREATE INDEX chart_country_datasources_country ON "shadow".chart_country_datasources USING btree(country);
|
|
663 |
-- CREATE INDEX chart_country_type_country ON "shadow".chart_country_type USING btree(country);
|
|
664 |
-- CREATE INDEX chart_country_fp7_country ON "shadow".chart_country_fp7 USING btree(country);
|
|
660 |
country charts |
|
661 |
CREATE INDEX chart_country_year_country ON "shadow".chart_country_year USING btree(country); |
|
662 |
CREATE INDEX chart_country_datasources_country ON "shadow".chart_country_datasources USING btree(country); |
|
663 |
CREATE INDEX chart_country_type_country ON "shadow".chart_country_type USING btree(country); |
|
664 |
CREATE INDEX chart_country_fp7_country ON "shadow".chart_country_fp7 USING btree(country); |
|
665 | 665 |
|
666 |
-- datasource
|
|
667 |
-- CREATE INDEX chart_datasource_type_datasource ON "shadow".chart_datasource_type USING btree(datasource);
|
|
668 |
-- CREATE INDEX chart_datasource_year_datasource ON "shadow".chart_datasource_year USING btree(datasource);
|
|
669 |
-- CREATE INDEX chart_datasource_funders_datasource ON "shadow".chart_datasource_funders USING btree(datasource);
|
|
670 |
-- CREATE INDEX chart_datasource_projects_pubs_datasource ON "shadow".chart_datasource_projects_pubs USING btree(datasource);
|
|
671 |
-- CREATE INDEX chart_datasource_projects_data_datasource ON "shadow".chart_datasource_projects_data USING btree(datasource);
|
|
666 |
datasource |
|
667 |
CREATE INDEX chart_datasource_type_datasource ON "shadow".chart_datasource_type USING btree(datasource); |
|
668 |
CREATE INDEX chart_datasource_year_datasource ON "shadow".chart_datasource_year USING btree(datasource); |
|
669 |
CREATE INDEX chart_datasource_funders_datasource ON "shadow".chart_datasource_funders USING btree(datasource); |
|
670 |
CREATE INDEX chart_datasource_projects_pubs_datasource ON "shadow".chart_datasource_projects_pubs USING btree(datasource); |
|
671 |
CREATE INDEX chart_datasource_projects_data_datasource ON "shadow".chart_datasource_projects_data USING btree(datasource); |
|
672 | 672 |
|
673 |
-- project
|
|
674 |
-- CREATE INDEX chart_project_year_id ON "shadow".chart_project_year USING btree(id);
|
|
675 |
-- CREATE INDEX chart_project_license_id ON "shadow".chart_project_license USING btree(id);
|
|
676 |
-- CREATE INDEX chart_project_repos_id ON "shadow".chart_project_repos USING btree(id);
|
|
673 |
project |
|
674 |
CREATE INDEX chart_project_year_id ON "shadow".chart_project_year USING btree(id); |
|
675 |
CREATE INDEX chart_project_license_id ON "shadow".chart_project_license USING btree(id); |
|
676 |
CREATE INDEX chart_project_repos_id ON "shadow".chart_project_repos USING btree(id); |
|
677 | 677 |
END;$$; |
678 | 678 |
|
679 | 679 |
-- |
... | ... | |
949 | 949 |
ALTER TABLE "shadow".organization RENAME TO torganization; |
950 | 950 |
|
951 | 951 |
CREATE VIEW "shadow".result AS SELECT tresult.id, tresult.id AS result_projects, tresult.id AS result_datasources, tresult.publisher, tresult.year, tresult.bestlicense, tresult.bestlicense AS access_mode, tresult.type, tresult.embargo_end_date, tresult.delayed, tresult.authors, tresult.funders, tresult.funding_lvl0 AS arfunding_lvl0, tresult.projects, tresult.datasources, 1 AS number, tresult.title as title, tresult.source as source, tresult.abstract as abstract FROM tresult; |
952 |
CREATE VIEW "shadow".datasource AS SELECT tdatasource.id, tdatasource.name, tdatasource.type, tdatasource.compatibility, tdatasource.dateofvalidation, tdatasource.yearofvalidation, tdatasource.harvested, tdatasource.piwik_id, tdatasource.latitude, tdatasource.longitude, tdatasource.id AS datasource_results, tdatasource.id AS datasource_organizations, 1 AS number FROM tdatasource; |
|
952 |
CREATE VIEW "shadow".datasource AS SELECT tdatasource.id, tdatasource.name, tdatasource.type, tdatasource.compatibility, tdatasource.dateofvalidation, tdatasource.yearofvalidation, tdatasource.harvested, tdatasource.piwik_id, tdatasource.latitude, tdatasource.longitude, tdatasource.websiteurl, tdatasource.id AS datasource_results, tdatasource.id AS datasource_organizations, 1 AS number FROM tdatasource;
|
|
953 | 953 |
CREATE VIEW "shadow".project AS SELECT tproject.id, tproject.acronym, tproject.title, tproject.funder, tproject.funding_lvl0, tproject.funding_lvl1, tproject.funding_lvl2, tproject.funding_lvl3, tproject.sc39, tproject.type, tproject.start_year, tproject.end_year, tproject.duration, tproject.haspubs, tproject.numpubs, tproject.enddate, tproject.startdate, tproject.daysforlastpub, tproject.delayedpubs, tproject.callidentifier, tproject.code, tproject.id AS project_results, tproject.id AS project_organizations, 1 AS number FROM tproject; |
954 | 954 |
CREATE VIEW "shadow".organization AS SELECT torganization.id, torganization.name, torganization.country, torganization.id AS organization_datasources, torganization.id AS organization_projects, 1 AS number FROM torganization; |
955 | 955 |
|
956 | 956 |
-- TODO delete when piwik ids are in place!!!! |
957 | 957 |
update shadow.tdatasource set piwik_id=76 where id='opendoar____::3a20f62a0af1aa152670bab3c602feed'; |
958 | 958 |
update shadow.tdatasource set piwik_id=132 where id='opendoar____::f1748d6b0fd9d439f71450117eba2725'; |
959 |
|
|
960 |
select * from project where funder ilike '%o para a%'; |
|
959 | 961 |
END;$$; |
960 | 962 |
|
961 | 963 |
|
Also available in: Unified diff
various shema fixes