gpt4 book ai didi

sql - 按关联的表属性分组和排序

转载 作者:行者123 更新时间:2023-11-29 13:38:22 25 4
gpt4 key购买 nike

有两个表,Group sections 和 Groups。

我想按组部分对组进行分组和排序。

组部分:

Id | Name       | Priority
1 | Football | 2
2 | Basketball | 1
3 | Tennis | 3

群组:

Id | section_id | Name 
1 | 1 | Barcelona
2 | NULL | Noname
3 | 1 | Real Madrid
4 | 2 | Cedevita
5 | 3 | Ljubljana

我现在在 sql 中得到了什么:

  SELECT  group_sections.id, group_sections.priority AS priority, group_sections.name, groups.*
FROM groups
LEFT OUTER JOIN group_sections ON group_sections.group_id = groups.id
GROUP BY group_sections.id, groups.id
ORDER BY group_sections.priority ASC

我想得到的:

Football => [<Group id: 1>, <Group id: 3], Basketball => [<Group id: 2>], Tennis => [<Group id: 3]

我怎样才能在 rails active record 中得到这个?

@groups.joins(:group_sections).group('group_sections.id', 'groups.id').order('group_sections.priority ASC')

这个查询对我不起作用。有什么想法吗?

最佳答案

你可以试试string_agg

select string_agg(name || ' => [' || groupnames ,', ')  groupnames
from(
SELECT b.name, string_agg(a.name,', ') || ']' groupnames
FROM groups1 a
JOIN group_sections b ON b.id = a.sectionid
group by a.sectionid, b.name, b.priority
order by b.priority) x

关于sql - 按关联的表属性分组和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59100802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com