It was in 2017
Now you can pass to select raw-sql-strings with any expression, just end 
with  ' ... *AS* some_name'  (*AS* must be in uppercase )

воскресенье, 15 ноября 2020 г. в 02:54:53 UTC+3, [email protected]: 

> 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 [email protected]
> You have to use db.executesql for that. Sorry.
>
> On Saturday, November 14, 2020 at 3:28:06 PM UTC-8 [email protected] 
> wrote:
>
>>   just replace *GROUP_CONCAT* with *string_agg * 
>>
>> воскресенье, 15 ноября 2020 г. в 02:19:52 UTC+3, [email protected]: 
>>
>>> I have postgres. How would it look for that?
>>>
>>> On Saturday, November 14, 2020 at 9:03:13 AM UTC-8 [email protected] 
>>> wrote:
>>>
>>>> Just in case : pydal doesnt support backend specific aggregate functions
>>>>
>>>>
>>>> суббота, 14 ноября 2020 г. в 19:54:35 UTC+3, [email protected]: 
>>>>
>>>>> There is no db.executesql
>>>>>
>>>>> суббота, 14 ноября 2020 г. в 19:51:52 UTC+3, [email protected]: 
>>>>>
>>>>>> sorry, did not mean direct SQL through db.executesql , meant through 
>>>>>> DAL
>>>>>>
>>>>>> On Saturday, November 14, 2020 at 8:23:11 AM UTC-8 [email protected] 
>>>>>> 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, [email protected]: 
>>>>>>>
>>>>>>>> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/e5dec1cd-da46-43e8-af30-2b873e5f2f3cn%40googlegroups.com.

Reply via email to