1
|
SELECT
|
2
|
a.id AS "id",
|
3
|
a.protocol AS "protocol",
|
4
|
coalesce(a.compatibility_override, a.compatibility) AS "compliance",
|
5
|
a.active AS "active",
|
6
|
a.baseurl AS "baseUrl",
|
7
|
coalesce(a.last_aggregation_date::text, a.last_download_date::text, '') AS "aggrDate",
|
8
|
coalesce(a.last_aggregation_total, a.last_download_total, 0) AS "aggrTotal",
|
9
|
ds.id AS "dsId",
|
10
|
ds.officialname AS "name",
|
11
|
ds.englishname AS "alternativeName",
|
12
|
ds.namespaceprefix AS "prefix",
|
13
|
ds.websiteurl AS "websiteUrl",
|
14
|
coalesce((array_agg(o.country))[1], '-') AS "country",
|
15
|
(array_agg(o.legalname))[1] AS "organization"
|
16
|
FROM dsm_api a
|
17
|
LEFT OUTER JOIN dsm_datasources ds ON (a.datasource = ds.id)
|
18
|
LEFT OUTER JOIN dsm_datasource_organization dsorg ON (ds.id = dsorg.datasource)
|
19
|
LEFT OUTER JOIN dsm_organizations o ON (dsorg.organization = o.id)
|
20
|
WHERE
|
21
|
ds.id ILIKE :value
|
22
|
OR ds.officialname ILIKE :value
|
23
|
OR ds.englishname ILIKE :value
|
24
|
OR ds.namespaceprefix ILIKE :value
|
25
|
OR ds.websiteurl ILIKE :value
|
26
|
OR a.baseurl ILIKE :value
|
27
|
OR o.legalname ILIKE :value
|
28
|
GROUP BY
|
29
|
a.id,
|
30
|
a.protocol,
|
31
|
a.compatibility_override,
|
32
|
a.compatibility,
|
33
|
a.active,
|
34
|
a.last_aggregation_date,
|
35
|
a.last_download_date,
|
36
|
a.last_aggregation_total,
|
37
|
a.last_download_total,
|
38
|
ds.id,
|
39
|
ds.officialname,
|
40
|
ds.englishname,
|
41
|
ds.namespaceprefix,
|
42
|
ds.websiteurl
|
43
|
|
44
|
|