select count(*) from (show index from repay.dynamic_form_table_ad6335d48011a96184d48d143b52de9c where column_name like 'input_1212') t
时间: 2024-06-01 21:13:43 浏览: 117
您想查询的是 repay.dynamic_form_table_ad6335d48011a96184d48d143b52de9c 表中,名为 input_1212 的列的数量,是吗?如果是的话,您可以使用以下 SQL 语句来实现:
SELECT COUNT(*) FROM (SHOW INDEX FROM repay.dynamic_form_table_ad6335d48011a96184d48d143b52de9c WHERE COLUMN_NAME LIKE 'input_1212') t
需要注意的是,这里使用了 SHOW INDEX 命令来获取列名为 input_1212 的列的信息,然后将其作为一个子查询传递给 COUNT(*) 函数来统计行数。
相关问题
解读--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
这是一段 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 month这段代码有没有问题
这段代码有问题,因为SELECT语句中的字段没有全部出现在GROUP BY语句中,GROUP BY语句中只有一个字段month。在使用GROUP BY语句时,需要保证SELECT语句中的所有字段都在GROUP BY语句中出现,或者在SELECT语句中使用聚合函数来对字段进行处理,例如SUM、COUNT等。因此,正确的写法应该是:
```
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
```
或者使用聚合函数对部分字段进行处理后再进行GROUP BY操作。
阅读全文