@@ -2,35 +2,37 @@ CREATE OR REPLACE FUNCTION ti.getdatasettoptaxa(
22 _datasetid int ,
33 _topx int ,
44 _grouptaxa CHARACTER VARYING DEFAULT NULL ,
5- _alwaysshowtaxa CHARACTER VARYING[] DEFAULT NULL )
5+ _alwaysshowtaxa CHARACTER VARYING DEFAULT NULL )
66RETURNS TABLE (id integer ,
77 taxonname character varying,
88 ecologicalgroupid CHAR (4 ))
99LANGUAGE sql
1010AS
1111$function$
12- WITH wholesum AS (
13- SELECT tx .taxonid ,
14- tx .taxonname ,
15- ec .ecolgroupid ,
16- row_number() OVER (ORDER BY SUM (dt .value ) DESC ) AS index
17- FROM ndb .samples AS sm
18- INNER JOIN ndb .data AS dt ON sm .sampleid = dt .sampleid
19- INNER JOIN ndb .variables AS var ON dt .variableid = var .variableid
20- INNER JOIN ndb .taxa AS tx ON var .taxonid = tx .taxonid
21- INNER JOIN ndb .ecolgroups AS ec ON tx .taxonid = ec .taxonid
22- WHERE var .variableelementid = ANY(' {141,166}' )
23- AND sm .datasetid = _datasetid
24- GROUP BY ec .ecolsetid ,
12+
13+ WITH wholesum AS (
14+ SELECT tx .taxonid ,
15+ tx .taxonname ,
2516 ec .ecolgroupid ,
26- tx .taxonname ,
27- tx .taxonid ,
28- var .variableunitsid
29- ORDER BY SUM (dt .value ) DESC )
17+ row_number() OVER (ORDER BY SUM (dt .value ) DESC ) AS index
18+ FROM ndb .samples AS sm
19+ INNER JOIN ndb .data AS dt ON sm .sampleid = dt .sampleid
20+ INNER JOIN ndb .variables AS var ON dt .variableid = var .variableid
21+ INNER JOIN ndb .taxa AS tx ON var .taxonid = tx .taxonid
22+ INNER JOIN ndb .ecolgroups AS ec ON tx .taxonid = ec .taxonid
23+ WHERE var .variableelementid = ANY(' {141,166}' )
24+ AND sm .datasetid = _datasetid
25+ GROUP BY ec .ecolsetid ,
26+ ec .ecolgroupid ,
27+ tx .taxonname ,
28+ tx .taxonid ,
29+ var .variableunitsid
30+ ORDER BY SUM (dt .value ) DESC )
31+
3032 SELECT taxonid AS id,
3133 taxonname AS taxon,
3234 ecolgroupid AS ecologicalgroupid
3335 FROM wholesum
3436 WHERE index <= _topx
35- OR taxonname = ANY(_alwaysshowtaxa )
37+ OR taxonname = ANY(SELECT unnest(string_to_array(_datasettypeidlist, ' , ' )) )
3638$function$
0 commit comments