解读--P0 select date(repay_date) repay_dt, count(1) cnt, sum(case when repay_status=2 then 1 end) repay_cnt, sum(plan_principal+plan_interest+plan_period_service+plan_financing_consulting_fee+coalesce(plan_other_fee,0)) plan_amt, sum(actual_principal+actual_interest+actual_period_service+actual_financing_consulting_fee+coalesce(actual_other_fee,0))actual_amount from (select agg.etl_date,agg.contr_num,agg.reloan_user,i.irr_flag from dm_fk.agg_speed_withhold_aggregation agg ---资产表 left join (select contr_num,irr_flag from dm_fk.agg_speed_withhold_irrflag --费率表 where etl_date='2023-01-31' ) i on agg.contr_num=i.contr_num where agg.etl_date in( '2022-12-31' )--上月底未结清C账户 and cast(overdue_pird_num as int)=0 and clear_flag='0' and agg.platform_nm not in('保理分期','恒易融')) t left join dm_fk.o_assets_xd_new_repay_plan_s p --还款计划表 on t.contr_num =p.contract_number where p.etl_date>=date('2023-01-01') and date(date_trunc('month',repay_date))=date_add('day',1,date(t.etl_date))--账单日为1月 --and date_diff('day',date(repay_date),p.etl_date) >=-6 and date_diff('day',date(repay_date),p.etl_date)=0 --账单日当天分区 根据还款计算获取实还金额 group by 1
时间: 2024-05-04 17:17:36 浏览: 294
这是一段 SQL 查询语句,主要用于从不同的数据表中获取特定的数据并进行统计分析。具体来说,该查询语句的目的是获取某个月份的贷款还款数据。查询语句中使用了多个关键字和函数,下面对其进行逐一解释:
1. select:表示要查询的字段。
2. count:表示统计某个字段的数量。
3. sum:表示求和某个字段的值。
4. case when ... then ... end:表示条件语句,根据条件返回不同的值。
5. left join:表示左连接操作,将两个表按照某个字段进行连接。
6. where:表示筛选条件。
7. group by:表示按照某个字段进行分组。
具体地,该查询语句从两个表中获取数据,分别是资产表和还款计划表。其中,资产表中包含了贷款的基本信息,还款计划表中包含了每个贷款的详细还款计划。查询语句中的条件语句可以筛选出符合要求的贷款,并统计相关的还款数据。最后,使用 group by 对结果进行分组,得到最终的统计数据。
相关问题
select date_day, term, is_first_repay, is_first_term_repay, last_month_overdue, curr_principal_amt, curr_principal_overdu_amt, curr_principal_3_overdu_amt, curr_principal_7_overdu_amt, curr_principal_15_overdu_amt, curr_principal_30_overdu_amt, reg_user_type, original_interest_type, curr_principal_2_overdu_amt, month from dm_finrisk.dwd_loan_driver_plan_day_overdue_detail_mi where month != 202304 group by date_day, term, is_first_repay, is_first_term_repay, last_month_overdue, curr_principal_amt, curr_principal_overdu_amt, curr_principal_3_overdu_amt, curr_principal_7_overdu_amt, curr_principal_15_overdu_amt, curr_principal_30_overdu_amt, reg_user_type, original_interest_type, curr_principal_2_overdu_amt, month order by month这段语句有没有问题
这段语句没有问题,可以正常执行。该语句在查询`dm_finrisk.dwd_loan_driver_plan_day_overdue_detail_mi`表中`month`不等于202304的数据,并按照`date_day, term, is_first_repay, is_first_term_repay, last_month_overdue, curr_principal_amt, curr_principal_overdu_amt, curr_principal_3_overdu_amt, curr_principal_7_overdu_amt, curr_principal_15_overdu_amt, curr_principal_30_overdu_amt, reg_user_type, original_interest_type, curr_principal_2_overdu_amt, month`这些字段进行分组,并按照`month`字段进行升序排序。如果查询结果中需要返回这些字段的值,则该语句可以正常使用。
下列代码的作用all_user_repay = all_user_repay.groupby(['user_id'])['listing_id'].agg(['nunique']).reset_index() # user_id nunique # 0 40 1 # 1 56 1 # 2 98 1 # 3 103 1 # 4 122 1
这段代码的作用是将名为 `all_user_repay` 的数据按照 `user_id` 进行分组,然后统计每个用户有多少不同的 `listing_id`,并将结果以 `user_id` 和 `nunique` 两列的形式保存到一个新的数据框中,然后返回结果。返回的结果展示了每个用户的 `user_id` 和不同的 `listing_id` 数量。
阅读全文