Project

General

Profile

1
SELECT * FROM (SELECT
2
	(array_agg(DISTINCT o.countryclass))[1] AS country,
3
	(array_agg(DISTINCT o.legalname))[1]    AS organization,
4
	d.id                                    AS repoid,
5
	d.officialname                          AS reponame,
6
	d.englishname                           AS othername,
7
	d.namespaceprefix                       AS repoprefix,
8
	d.websiteurl                            AS repourl,
9
	a.id                                    AS id,
10
	a.active                                AS active,
11
	a.protocolclass                         AS protocol,
12
	a.typologyclass                         AS type,
13
	CASE 
14
		WHEN (accomp.edited IS NOT NULL) THEN accomp.edited 
15
		WHEN (accomp.original IS NOT NULL) THEN accomp.original
16
		ELSE a.compatibilityclass
17
	END AS compliance,
18
	CASE 
19
		WHEN (acaggrdate.edited   IS NOT NULL) THEN acaggrdate.edited 
20
		WHEN (acaggrdate.original IS NOT NULL) THEN acaggrdate.original
21
		WHEN (acdowndate.edited   IS NOT NULL) THEN acdowndate.edited 
22
		WHEN (acdowndate.original IS NOT NULL) THEN acdowndate.original
23
		ELSE ''
24
	END AS aggrdate,
25
	CASE 
26
		WHEN (acaggrtotal.edited   IS NOT NULL) THEN acaggrtotal.edited 
27
		WHEN (acaggrtotal.original IS NOT NULL) THEN acaggrtotal.original
28
		WHEN (acdowntotal.edited   IS NOT NULL) THEN acdowntotal.edited 
29
		WHEN (acdowntotal.original IS NOT NULL) THEN acdowntotal.original
30
		ELSE '0'
31
	END AS aggrtotal
32
FROM
33
	api a 
34
	LEFT OUTER JOIN datasources d               ON (a.datasource = d.id)
35
	LEFT OUTER JOIN datasource_organization dao ON (d.id = dao.datasource)
36
	LEFT OUTER JOIN organizations o             ON (dao.organization = o.id)
37
	LEFT OUTER JOIN apicollections accomp       ON (a.id = accomp.api      AND accomp.param = 'overriding_compliance')
38
	LEFT OUTER JOIN apicollections acaggrdate   ON (a.id = acaggrdate.api  AND acaggrdate.param = 'last_aggregation_date')
39
	LEFT OUTER JOIN apicollections acaggrtotal  ON (a.id = acaggrtotal.api AND acaggrtotal.param = 'last_aggregation_total')
40
	LEFT OUTER JOIN apicollections acdowndate   ON (a.id = acdowndate.api  AND acdowndate.param = 'last_download_date')
41
	LEFT OUTER JOIN apicollections acdowntotal  ON (a.id = acdowntotal.api AND acdowntotal.param = 'last_download_total')
42
	GROUP BY
43
		d.id, d.officialname, d.englishname, d.namespaceprefix, d.websiteurl, 
44
		a.id, a.active, a.protocolclass, a.typologyclass, a.compatibilityclass,
45
		accomp.edited, accomp.original,
46
		acaggrdate.edited, acaggrdate.original, 
47
		acdowndate.edited, acdowndate.original,
48
		acaggrtotal.edited, acaggrtotal.original,
49
		acdowntotal.edited, acdowntotal.original
50
) AS t WHERE
51
	$if(field)$
52
		$field$ = $delimeter$$value$$delimeter$
53
	$else$
54
		repoid ILIKE '%$value$%' 
55
		OR reponame ILIKE '%$value$%'
56
		OR othername ILIKE '%$value$%'
57
		OR repoprefix ILIKE '%$value$%' 
58
		OR repourl ILIKE '%$value$%' 
59
		OR organization ILIKE '%$value$%' 
60
	$endif$
61

    
62

    
(14-14/20)