tableA から上位 5 つの値を照会する必要があります。以下のような
select id, count(occurrence), date
from
(select id, unnest(value) as occurrence, date from tableA) as a
group by id, occurrence, date
order by occurrence desc
limit 5
id | occurrence | date
-----+-------+----------
330 | 11 | 20141015
400 | 11 | 20141015
390 | 10 | 20141015
240 | 10 | 20141015
501 | 10 | 20141015
ID を受け取った後、同じ tableA にクエリを実行して、20140101 から 20141015 までの他の日付範囲の ID のすべての値を取得します。
expected result:
id | occurrence | date
-----+-------+----------
330 | 11 | 20141015
400 | 11 | 20141015
390 | 10 | 20141015
240 | 10 | 20141015
501 | 10 | 20141015
330 | 0 | 20141014
400 | 1 | 20141014
390 | 10 | 20141014
240 | 15 | 20141014
501 | 10 | 20141014
330 | 11 | 20141013
400 | 11 | 20141013
390 | 11 | 20141013
240 | 19 | 20141013
501 | 10 | 20141013
しかし、どうすれば正確にそれを行うことができますか?
私のpostgresqlバージョンは8.1であり、パーティションを使用できません(提案したい場合)
編集
select id, count(value) as occurrence, date
from tableA
where id = ANY(
select array(
select id
from (
select date, unnest(id) as id
from tableA where date>='20140101' and date<='20141015'
)as a
)
)
group by id, date
何も返しません。私の配列は正しいですか?