问题描述
我正在尝试将所有活动的订阅状态与 customers 表中的运输数据与费用表中的总费用和退款。
错误来自第 29:88 行,或 c.shipping_address_city 之后的第二个“group by”。查询的第一个“分组依据”部分不会出现此问题,我将其复制并粘贴到第二个 select 语句中。
当我将“分组依据”字段减少到只有 c.email 或。 c.id,我有一个聚合错误:
active_customer_plans as (
select c.email,c.id as customer_id,c.shipping_name,c.name,c.shipping_address_line1,c.shipping_address_line2,c.shipping_address_city,c.shipping_address_state,c.shipping_address_postal_code,c.shipping_address_country,sum(charges.amount) as total_charges,sum(charges.amount_refunded) as total_refunds
from subscriptions sub
left join charges on sub.customer_id = charges.customer_id
left join customers c on sub.customer_id = c.id
where sub.status in ('active','past_due')
group by c.email,c.id,c.shipping_address_country
union all
-- including subscriptions migrated from vhx existing as trialing
-- and excluding paused subscriptions
select c.email,sum(charges.amount_refunded) as total_refunds,'active (migrated_trialing)' as status
from subscriptions sub
left join charges on sub.customer_id = charges.customer_id
left join customers c on sub.customer_id = c.id
where sub.status in ('trialing')
group by c.email,c.shipping_address_country
and exists (
select sub_Meta.subscription_id
from subscriptions_Metadata sub_Meta
where sub.id = sub_Meta.subscription_id
and sub_Meta.key = 'zype_migration'
and sub_Meta.value = 'true'
)
and not exists (
select sub_Meta.subscription_id
from subscriptions_Metadata sub_Meta
where sub.id = sub_Meta.subscription_id
and sub_Meta.key = 'zype_status'
and sub_Meta.value = 'paused'
)
-- excluding subscriptions migrated from vhx existing as trialing
-- and excluding paused subscriptions
)
select status as subscription_status,email as customer_email,customer_id,shipping_name,name,shipping_address_line1,shipping_address_line2,shipping_address_city,shipping_address_state,shipping_address_postal_code,shipping_address_country,total_charges,total_refunds
from active_customer_plans
order by 1,2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)