根据报错信息,可以看到以下问题:

  1. 在union操作中,左边的查询结果有2列,而右边的查询结果有3列,导致类型不匹配。需要保证union操作的两个查询结果的列数一致。
  2. 在on子句中,引用了t.user_id和t.prov_id,但是在子查询中没有包含这两个列,所以报错"column t.user_id cannot be resolved; Did you mean u.user_id ?"和"column t.prov_id cannot be resolved; Did you mean u.prov_id ?"。需要根据实际需求,修改子查询的结果列。
  3. 在group by子句中,引用了u.total_fee,但是在select子句中没有包含该列,所以报错"column reference u.total_fee should appear in GROUP BY key"。需要将u.total_fee添加到select子句中。

根据以上问题,可以修改原始语句如下:

select 
  u.user_id,
  u.natural_cust_id,
  u.prov_id,
  u.total_fee
from zq_dwa.dwa_m_cus_al_cb_user_info u
inner join 
(select 
   a.user_id,
   a.natural_cust_id,
   a.prov_id
from zq_dwa.dwa_m_cus_al_cb_user_info a  
left join zq_dwa.dwa_m_cus_al_list_nat_info b on a.natural_cust_id = b.nature_id
where b.cust_level = '0'

union all 

select 
   a.user_id,
   a.natural_cust_id,
   a.prov_id
from zq_dwa.dwa_m_cus_al_cb_user_info a  
left join zq_dwa.dwa_m_cus_al_list_nat_info b on a.prov_id = b.prov_id and a.natural_cust_id = b.nature_id
where b.cust_level = '1') t 
on u.user_id = t.user_id and u.natural_cust_id = t.natural_cust_id and u.prov_id = t.prov_id
group by u.user_id, u.natural_cust_id, u.prov_id, u.total_fee
order by u.total_fee
limit 50;

请注意,根据实际需求,可能还需要根据具体情况做一些其他调整

运行以下语句:select uuser_id unatural_cust_id uprov_idfrom zq_dwadwa_m_cus_al_cb_user_info uinner join select anatural_cust_id bcust_levelfrom zq_dwadwa_m_cus_al_cb_user_info a left jo

原文地址: https://www.cveoy.top/t/topic/ianM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录