I adapted to my code and worked very well.

Thank you so much, Jeremy.

On Thursday, December 14, 2017 at 6:12:30 PM UTC+3, Jeremy Evans wrote:
>
> On Thursday, December 14, 2017 at 6:57:30 AM UTC-8, Gencer W. G. wrote:
>>
>> What I want to achieve:
>>
>> WITH summary AS (
>>     SELECT f.* ,
>>       ROW_NUMBER() OVER(PARTITION BY f.name
>>                       ORDER BY f.version DESC) AS rk
>>       FROM files f WHERE f.user_id = 1 and f.is_deleted IS FALSE)
>>                SELECT s.*
>>                  FROM summary s
>>                WHERE s.rk = 1"
>>
>> This query works as a RAW SQL. But I am unable to get f.*, row_number() 
>> together on Sequel. I only get row_number() for select. Also a little help 
>> on writing this query like above (for surrounding by WITH) is appreciated.
>>
>> So far tried:
>>
>> TableModel.select{Sequel[:reserves].* 
>> }.select{row_number.function.over(partition: object_name, order: 
>> version.desc).as(:rk)}.where(... # i did not finish the query.
>>
>> How do I make sure f* and row number as rk get together with surrounded 
>> WITH on Sequel query builder? Or should I use raw?
>>
>
> You don't need to use raw SQL for this:
>
> DB.from{summary.as(:s)}.
>   select_all(:s).
>   where{s[:rk] =~ 1}.
>   with(:summary, DB.from{files.as(:f)}.
>     select_all(:f).
>     select_append{row_function.function.over(:partition=>f[:name], 
> :order=>f[:version].desc).as(:rk)}.
>     where{f[:user_id] =~ 1}.
>     where{f[:deleted_at] =~ false})
>
> Thanks,
> Jeremy
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to