looks like need executeSQL needed for string_agg: 
Is it possible to do more advanced queries (like using string_agg) with DAL 
in the meantime?
Massimo Di Pierro
Apr 12, 2017, 4:21:36 AM
to web...@googlegroups.com
You have to use db.executesql for that. Sorry.

On Saturday, November 14, 2020 at 3:28:06 PM UTC-8 valq...@gmail.com wrote:

>   just replace *GROUP_CONCAT* with *string_agg * 
>
> воскресенье, 15 ноября 2020 г. в 02:19:52 UTC+3, alexg...@gmail.com: 
>
>> I have postgres. How would it look for that?
>>
>> On Saturday, November 14, 2020 at 9:03:13 AM UTC-8 valq...@gmail.com 
>> wrote:
>>
>>> Just in case : pydal doesnt support backend specific aggregate functions
>>>
>>>
>>> суббота, 14 ноября 2020 г. в 19:54:35 UTC+3, valq...@gmail.com: 
>>>
>>>> There is no db.executesql
>>>>
>>>> суббота, 14 ноября 2020 г. в 19:51:52 UTC+3, alexg...@gmail.com: 
>>>>
>>>>> sorry, did not mean direct SQL through db.executesql , meant through 
>>>>> DAL
>>>>>
>>>>> On Saturday, November 14, 2020 at 8:23:11 AM UTC-8 valq...@gmail.com 
>>>>> wrote:
>>>>>
>>>>>> Assuming sqlite:
>>>>>> person_cnt = 
>>>>>> db.PERSON_PROJECT_PRIORITY.person_fk.count().with_alias('person_cnt')
>>>>>>
>>>>>>
>>>>>> prioritySet = db((db.PERSON.id <http://db.person.id/> == 
>>>>>> PERSON-PROJECT-PRIORITY.person_fk) & (PROJECT.id == 
>>>>>> PERSON-PROJECT-PRIORITY.project_fk)).select(
>>>>>> ...,
>>>>>> person_cnt, 
>>>>>> 'GROUP_CONCAT(person.person_name,",") AS person_list'
>>>>>> groupby = db.PERSON-PROJECT-PRIORITY.project_fk, 
>>>>>> )
>>>>>>
>>>>>> суббота, 14 ноября 2020 г. в 09:40:17 UTC+3, alexg...@gmail.com: 
>>>>>>
>>>>>>> How to write a statement that counts which projects are the priority 
>>>>>>> of most people
>>>>>>>
>>>>>>> PROJECT
>>>>>>> id
>>>>>>> project_name
>>>>>>>
>>>>>>> PERSON
>>>>>>> id
>>>>>>> person_name
>>>>>>>
>>>>>>> PERSON_PROJECT_PRIORITY
>>>>>>> person_fk
>>>>>>> project_fk
>>>>>>>
>>>>>>> prioritySet = db((db.PERSON.id == 
>>>>>>> PERSON-PROJECT-PRIORITY.person_fk) & (PROJECT.id == 
>>>>>>> PERSON-PROJECT-PRIORITY.project_fk)).select()
>>>>>>>
>>>>>>> How to sort by count of projects which have priority in order of the 
>>>>>>> most persons' priority?
>>>>>>>
>>>>>>> Output looks like this:
>>>>>>>
>>>>>>> Paint-the-house (10)  [Means is the top priority for 10 people]
>>>>>>> Plant-a-garden (5)
>>>>>>> Clean-out-garage (2)
>>>>>>>
>>>>>>> If you have additional time, how to write so output looks like:
>>>>>>>
>>>>>>> Paint-the-house (10) Tom, Sue, Tony, Ted, Mary, Fred, Sal, Chris, 
>>>>>>> Ed, Sally
>>>>>>> Plant-a-garden   (5) Harry, George, Joanne, Tony, Janet
>>>>>>> Clean-out-garage (2) Clyde, Jane
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Alex Glaros
>>>>>>>
>>>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/a7831526-8b95-4b3c-a48b-4f8d3a0f2923n%40googlegroups.com.

Reply via email to