使用列的值作为sql中另一列的别名
我有以下类型的查询和结果结构使用列的值作为sql中另一列的别名,sql,postgresql,typeorm,Sql,Postgresql,Typeorm,我有以下类型的查询和结果结构 await getConnection() .createQueryBuilder() .from(Service,"service") .select('service.dueDate',"date") .addSelect('array_agg(service.id)',"services") .groupBy('servi
await getConnection()
.createQueryBuilder()
.from(Service,"service")
.select('service.dueDate',"date")
.addSelect('array_agg(service.id)',"services")
.groupBy('service.dueDate')
.getRawMany();
样本结果:
但我需要我的结构如下:
这意味着我应该有column date的值作为column services的别名。只需将
Array.prototype.map()
应用到结果集,并重新定义/重塑对象即可。@IVOGELOV,但我想看看是否有一种SQL方法可以用来比较性能。我不知道如何用typeorm
来表达这一点,但对于原始SQL,可以使用JSON\u AGG和JSON\u BUILD\u对象函数。
[
{
"date": "2021-04-17T07:24:32.833Z",
"services": [
1,
5,
4
],
},
{
"date": "2021-04-27T12:55:20.879Z",
"services": [
6
],
}
]
[
{
"2021-04-17T07:24:32.833Z": [
1,
5,
4
],
},
{
"2021-04-27T12:55:20.879Z": [
6
],
}
]