You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PolicyCenter本地SQL查询转换为云版Gosu Query?

将SQL查询转换为PolicyCenter云版本的Gosu Query

原SQL的核心逻辑是:合并联系人主地址与关联地址数据,找出同一联系人在同一生效日期下存在至少两条相同地址类型的记录。以下是对应的Gosu实现:

// 定义统一的数据结构,存储合并后的地址关联数据
class ContactAddressData {
  var contactId: String
  var createTime: DateTime
  var validFrom: DateTime
  var addressType: String
}

// 第一部分:获取联系人的主地址数据
var primaryAddressRecords = Query.from(Contact)
                                  .join(Address).on(\Contact.PrimaryAddress.Id == \Address.Id)
                                  .select(\Contact.Id as contactId, \Address.CreateTime as createTime, \Address.ValidFrom as validFrom, \Address.AddressType as addressType)
                                  .toList()

// 第二部分:获取联系人关联的其他地址数据
var linkedAddressRecords = Query.from(ContactAddress)
                                 .join(Address).on(\ContactAddress.Address.Id == \Address.Id)
                                 .select(\ContactAddress.Contact.Id as contactId, \Address.CreateTime as createTime, \Address.ValidFrom as validFrom, \Address.AddressType as addressType)
                                 .toList()

// 合并两个数据集(对应SQL的UNION ALL)
var combinedData = primaryAddressRecords.concat(linkedAddressRecords)

// 分组筛选符合条件的记录
var finalResult = Query.from(combinedData)
                        .groupBy(\ContactAddressData.contactId, \ContactAddressData.validFrom, \ContactAddressData.addressType)
                        .having(group => group.Count() >= 2)
                        .select(group => [
                          contactId: group.Key.contactId,
                          addressType: group.Key.addressType
                        ])
                        .toList()

关键逻辑说明:

  • 联合数据集:用Gosu的concat方法实现SQL中UNION ALL的效果,通过ContactAddressData类保证两个数据集的字段结构一致。
  • 分组与筛选:通过groupBy指定分组维度,having子句利用分组的Count()方法判断数量条件,最后投影出需要的contactId和addressType。
  • 实体关联:直接使用PolicyCenter实体的关联属性(如Contact.PrimaryAddress、ContactAddress.Contact)替代SQL的JOIN条件,贴合平台的对象模型设计。

内容的提问来源于stack exchange,提问作者Timothée Auffret

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:38:22