У меня есть запрос:Сгруппированные LIMIT 10 в Postgresql
select
a.kli,
b.term_desc,
count(distinct(a.adic)) as count,
a.partner_id
from
ad_delivery.sgmt_kli_adic a
join wand.wandterms b on a.kli = b.term_code
join wand.wandterms c on b.term_desc=c.term_desc
join dwh.sgmt_clients e on a.partner_id::varchar = e.partner_id
join dwh.schema_names f on e.partner_id::integer = f.partner_id::integer
where
a.partner_id::integer in (f.partner_id)
and c.class_code = 969
group by a.partner_id, b.term_desc, a.kli
order by partner_id, count desc;
, который приносит обратно рассчитывает на определенные сроки на partner_id. Я хочу, чтобы иметь возможность показать топ-10 для каждого из ~ 40 partner_id в порядке по количеству по алфавиту
результаты запроса выглядеть
db=# SELECT * FROM xxx; pid | term_desc | count ----+------------+------ 4 | termdesc1 | 3434 4 | termdesc2 | 235 4 | termdesc3 | 367 4 | termdesc4 | 4533 5 | termdesc1 | 235 5 | termdesc2 | 567 5 | termdesc3 | 344 5 | termdesc4 | 56 (10k+ rows)
Похоже, что есть ошибка: «ОШИБКА: ОШИБКА: ошибка синтаксиса в точке или рядом» (« Позиция: 99». Это сразу после слова RANK. Я не знаком с функцией RANK(), поэтому я не знаю – precose
Хорошо, попробуйте заменить ROW_NUMBER() – aleroot
Похоже, что функции Window не допускаются в предложениях HAVING. Они также не допускаются в предложениях WHERE. – precose