This is not correct. An index can accelerate, for instance, max(). Here is also 
not WHERE or ORDER BY, but index is useful:
select max(created_at) from delivery;

> 23 окт. 2023 г., в 18:23, Toomas <toomas.kris...@gmail.com> написал(а):
> 
> 
> There is no reason to use index. The query has neither WHERE nor ORDER BY 
> clause.
> 
> Toomas
> 
>> On 23. Oct 2023, at 18:13, Олег Самойлов <spl...@ya.ru> wrote:
>> 
>> Back pardon, but I have a very newbie question. I have a partitioned table, 
>> partitioned by primary bigint key, size of partition 10000000. I need to get 
>> the number of partition which need to archive, which has all rows are olden 
>> then 3 month. Here is query:
>> 
>> SELECT id/10000000 as partition
>>  FROM delivery
>>  GROUP BY partition
>>  HAVING max(created_at) < CURRENT_DATE - '3 month'::interval;
>> 
>> The 'id/10000000 as partition' is a number of the partition, it later will 
>> be used inside the partition name.
>> The query runs long by sequence scan. Has anyone any ideas how to rewrite 
>> query so it will use any index?
>> 
> 



Reply via email to