With --1. group aTable as( SELECT "SourceOrderNumber","OperateType",sum("ServiceCatagoryQuota") as "ServiceCatagoryQuota", array_agg("UsedOrderItemNumber") as "UsedOrderItemNumber" FROM orders."a" group by "SourceOrderNumber","OperateType" ), --2. group后 按类型 一行展示 aSplitTable as ( select "SourceOrderNumber", sum(CASE "OperateType" WHEN 0 THEN "ServiceCatagoryQuota" ELSE 0 END ) "RechargeQuota", sum(CASE "OperateType" WHEN 1 THEN "ServiceCatagoryQuota" ELSE 0 END ) "ConsumeQuota", sum(CASE "OperateType" WHEN 3 THEN "ServiceCatagoryQuota" ELSE 0 END ) "RechargeReturnQuota", sum(CASE "OperateType" WHEN 2 THEN "ServiceCatagoryQuota" ELSE 0 END ) "CancelConsumeQuota", sum("ServiceCatagoryQuota") as "LeftQuota" from aTable group by "SourceOrderNumber" ) SELECT * from aSplitTable;
case的其他用法
SELECT po."OrderNumber" as "订单编号", po."Currency" as "币种id", CASE WHEN sc."Currency" =1 THEN 'CNY' WHEN sc."Currency" =2 THEN 'USD' WHEN sc."Currency" =3 THEN 'EUR' WHEN sc."Currency" =4 THEN 'HKD' WHEN sc."Currency" =5 THEN 'GBP' WHEN sc."Currency" =6 THEN 'AUD' WHEN sc."Currency" =7 THEN 'CAD' WHEN sc."Currency" =8 THEN 'JPY' WHEN sc."Currency" =9 THEN 'KRW' WHEN sc."Currency" =10 THEN 'NZD' WHEN sc."Currency" =11 THEN 'RUB' WHEN sc."Currency" =12 THEN 'SGD' ELSE '其他' end AS "币种名称" from po limit 10;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。