2013-04-11 3 views
-1

my select query должен возвращать общий счетчик и другие поля с ограничением и смещением. Общий счет будет 1000, но я ограничу результат на 5. Ожидаем, что sql вернет общий счет как 1000 и другие 5 отдельных идентификаторов.postgres window function - over()

Возможно ли это посредством (или) или любым другим способом. предел не должен применяться к счету!

SELECT DISTINCT id, total OVER (
    count(DISTINCT las.id) 
    FROM asset 
    WHERE TRUE AND model = 12 AND l status = 'Done' 
    ) 
WHERE TRUE AND model = 12 AND l status = 'Done' 
FROM asset limit 0,10 ; 

sql не работает в любом случае!

ожидаемый результат

id count 
1  1000 
2  1000 
3  1000 
4  1000 
5  1000 

общее количество на основе состояния и идентификаторами на основе условия и ограничения

+2

Ваш запрос неправильно таким образом, что не представляется возможным узнать, что ваша цель. Просто отправьте образец своих данных и желаемый результат. –

+0

Пожалуйста, разместите некоторые данные примера, его трудно понять ваши требования. – Akash

+0

Вам нужно ** сначала ** указать функцию окна (например, 'count()') *, а затем * определить окно, используя предложение 'over()'. В этом руководстве есть довольно хороший учебник. –

ответ

1
select id, count(*) total 
from asset 
where model = 12 and status = 'Done' 
group by id 
order by id 
limit 5 
+0

Я не получаю фактическое общее количество, его возвращение 1. есть ли что-то конкретное для postgres – zod

+0

, так как есть группа, она просто дает подсчет каждого сгруппированного id 1 !!! – zod

+0

@zod Вы не сказали, что хотите. –

Смежные вопросы