字段if的筛选范围不在where的筛选范围能不能成立

比如:判断某某本年比上年不良率
select
data_dt
,sum(if(date_dt='2021-12-31',sal,0))/sum(if(date_dt='2021-12-31',sal2,0)) as sal_last
,sum(if(date_dt='2022-12-31',sal,0))/sum(if(date_dt='2022-12-31',sal2,0)) as sal_now
,sal_last - sal_now
from
T1
where
data_dt >= '2022-01-01'
and data_te <= '2022-12-31''
group by data_dt
--上年不良额/上年总额 - 今年不良额1/今年总额
--问题上年的数据能不能取到查询字段里面?

分步来做,汇总本年的数据作为左表,然后汇总去年的数据作为右表,然后左关联不就出来了

不会,先走where,后走select

执行顺序:
1.from 从什么表
2.where 筛选出什么数据出来
3.group by 按照什么分组
4.select 得到什么数据
可以了解到先where再select,if在select里面,先where再if

不能,select 是从where条件中查找数据,select * 所有的,如果select * 都没有的数据,你怎么写都不会出来