Project

General

Profile

1
SELECT 
2
	ds.id,
3
	ds.officialname,
4
	ds.englishname,
5
	ds.websiteurl,
6
	ds.logourl,
7
	ds.contactemail,
8
	ds.latitude,
9
	ds.longitude,
10
	ds.timezone,
11
	ds.namespaceprefix,
12
	ds.od_numberofitems, 
13
	ds.od_numberofitemsdate,
14
	ds.od_policies,
15
	ds.od_languages, 
16
	ds.od_contenttypes, 
17
	ds.collectedfrom,
18
	ds.inferred,
19
	ds.deletedbyinference,
20
	ds.trust,
21
	ds.inferenceprovenance,
22
	ds.dateofvalidation,
23
	ds.registeredby,
24
	ds.optional1,
25
	ds.optional2,
26
	ds.datasourceclass,
27
	ds.provenanceactionclass,
28
	ds.dateofcollection,
29
	ds.typology,
30
	ds.activationid, 
31
	ds.mergehomonyms,
32
	ds.description,
33
	ds.releasestartdate,
34
	ds.releaseenddate,
35
	ds.missionstatementurl,
36
	ds.dataprovider,
37
	ds.serviceprovider,
38
	ds.databaseaccesstype,
39
	ds.datauploadtype,
40
	ds.databaseaccessrestriction,
41
	ds.datauploadrestriction,
42
	ds.versioning,
43
	ds.citationguidelineurl,
44
	ds.qualitymanagementkind, 
45
	ds.pidsystems,
46
	ds.certificates, 
47
	ds.aggregator,
48
	ds.issn,
49
	ds.eissn,
50
	ds.lissn,
51
	(array_agg(o.legalname))[1] as organization,
52
	(array_agg(ccl.code))[1] as countrycode,
53
	(array_agg(ccl.name))[1] as countryname,
54
	array_agg(distinct ag.accessinfopackage) as accessinfopackage,
55
	to_char(now(), 'YYYY-MM-DDThh24:mi:ssZ') AS now
56
	
57
FROM datasources ds
58
	LEFT OUTER JOIN datasource_organization dso ON ds.id = dso.datasource
59
	LEFT OUTER JOIN organizations o ON dso.organization = o.id
60
	LEFT OUTER JOIN class ccl ON ccl.code = o.countryclass
61
	LEFT OUTER JOIN (
62
			SELECT 	api.datasource, api.contentdescriptionclass, api.compatibilityclass,
63
					COALESCE(api.id, '')||'<==1==>'||COALESCE(api.typologyclass, '')||'<==2==>'||COALESCE(api.compatibilityclass, '')||'<==3==>'||COALESCE(api.contentdescriptionclass,'')||'<==4==>'||COALESCE(api.protocolclass,'')||'<==5==>'||COALESCE(api.active,false)||'<==6==>'||COALESCE(api.removable,false)||'<==7==>'||array_to_string(array_agg(distinct COALESCE(ac.accessparam, true)||'###'||COALESCE(ac.param,'')||'###'||COALESCE(ac.value,'')||'###'), '@@@') AS accessinfopackage 
64
			FROM api 
65
			LEFT OUTER JOIN (
66
				SELECT api, param, accessparam, CASE WHEN edited IS NULL THEN original ELSE edited END as value FROM apicollections
67
			) AS ac ON (ac.api = api.id) 
68
			GROUP BY 
69
				api.id,
70
				api.datasource,
71
				api.contentdescriptionclass,
72
				api.typologyclass,
73
				api.compatibilityclass,
74
				api.protocolclass,
75
				api.active,
76
				api.removable
77
		) AS ag on (ag.datasource = ds.id)
78

    
79
$if(condition)$
80
	WHERE $condition$
81
$endif$
82

    
83
GROUP BY 
84
	ds.id,
85
	ds.officialname,
86
	ds.englishname,
87
	ds.websiteurl,
88
	ds.logourl,
89
	ds.contactemail,
90
	ds.latitude,
91
	ds.longitude,
92
	ds.timezone,
93
	ds.namespaceprefix,
94
	ds.od_numberofitems, 
95
	ds.od_numberofitemsdate,
96
	ds.od_policies,
97
	ds.od_languages, 
98
	ds.od_contenttypes, 
99
	ds.collectedfrom,
100
	ds.inferred,
101
	ds.deletedbyinference,
102
	ds.trust,
103
	ds.inferenceprovenance,
104
	ds.dateofvalidation,
105
	ds.registeredby,
106
	ds.optional1,
107
	ds.optional2,
108
	ds.datasourceclass,
109
	ds.provenanceactionclass,
110
	ds.dateofcollection,
111
	ds.typology,
112
	ds.activationid, 
113
	ds.mergehomonyms,
114
	ds.description,
115
	ds.releasestartdate,
116
	ds.releaseenddate,
117
	ds.missionstatementurl,
118
	ds.dataprovider,
119
	ds.serviceprovider,
120
	ds.databaseaccesstype,
121
	ds.datauploadtype,
122
	ds.databaseaccessrestriction,
123
	ds.datauploadrestriction,
124
	ds.versioning,
125
	ds.citationguidelineurl,
126
	ds.qualitymanagementkind, 
127
	ds.pidsystems,
128
	ds.certificates, 
129
	ds.aggregator,
130
	ds.issn,
131
	ds.eissn,
132
	ds.lissn
(8-8/20)