sql - 按列分组并选择其他列作为rails中的列表
问题描述
我有一张像下面这样的桌子
+---+---+
| A | B |
+---+---+
| 1 | 1 |
+---+---+
| 2 | 1 |
+---+---+
| 3 | 2 |
+---+---+
| 4 | 2 |
+---+---+
| 5 | 2 |
+---+---+
有没有一种有效的方法来查询形成如下:
{1 => [1,2], 2 => [3,4,5]}
(按 B 分组并选择 A 作为列表)
解决方案
你可以使用string_agg()
功能
select B,string_agg(A,', ')
from tablename
group by B
或者你可以使用array_agg()
select B,array_agg(A)
from tablename
group by B
推荐阅读
- c - 为什么调试器忽略了while循环?
- javascript - Javascript 代码在浏览器中正确执行,但在 VSCODE 中的代码末尾收到多个“声明或预期语句”错误
- angular - 如何在successCallback()中lastRow为零后重新填充网格
- java - Web3j - 如何使用助记符签署交易?
- r - 生成大小为 n 的样本并在 R 中应用函数?
- c# - 如何将状态属性返回到 .NET 中的列表响应?
- python - Stanza 没有像预期的那样标记句子;我可以使用换行符作为启发式吗?
- azure-application-insights - 如何分析 Azure 上的 WAF 规则?
- python - 关于gnupg包python脚本的问题
- c# - c#中物体旋转的问题