标签:Postgresql 不同 sum WHEN Currency ServiceCatagoryQuota sc group
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;
标签:Postgresql,不同,sum,WHEN,Currency,ServiceCatagoryQuota,sc,group 来源: https://www.cnblogs.com/panpanwelcome/p/15745183.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。