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

如何让ZINC在LISTAGG聚合结果前置,其余内容正常聚合?

解决方案

你只需要修改LISTAGG函数里的排序逻辑,通过条件判断让ZINC优先排在最前面,其余产品再按原顺序聚合。修改后的SQL脚本如下:

select
    customer_id,
    listagg(car_product, '-') within group (
        order by 
            case when car_product = 'ZINC' then 0 else 1 end,
            car_product
    ) as Product
from purchase
group by customer_id

逻辑说明

  • case when car_product = 'ZINC' then 0 else 1 end:给ZINC标记为0,其他产品标记为1,排序时0会排在1前面,确保ZINC始终在聚合结果的最开头。
  • 第二个排序条件car_product:保证除ZINC外的其他产品仍按原有的字母顺序聚合。

这样就能实现你要的效果:有ZINC的客户,聚合结果以ZINC开头,其余产品按顺序拼接;没有ZINC的客户则直接按原逻辑聚合所有产品。

内容的提问来源于stack exchange,提问作者Lizzie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:55:16