1-. 所有关键字小写
2-. 表别名要求按照a,b,c,d,e,f,g……等顺序使用,要求最内层为a,最外层为t,同层要求使用1,3-,3,4表示
4-. 复杂逻辑要求多行书写,提高可读性和结构分明
5-. select 的字段要求每个字段一行,逗号放到字段之前
6-. group by的字段同上
7-. where 后面如果有多个条件则每个条件一行
8-. 所有select 必须书写字段,不能使用*,明确所使用的字段提高可读性。
9-. 如果join子表建议使用方式1而不是方式2
----------------------------------------方式1--------------------
select
t1.member_id
,t1.activity_id
from(
select
member_id
from dim_member
where ds = '2024-10-10'
)t1
left join(
select
activity_id
,member_id
,spu_code
from fct_member_active_detail
where ds ='2024-10-10
)t2 on t1.member_id = t2.member_id
----------------------------------------方式2--------------------
select
t1.member_id
,t1.activity_id
from dim_member t1
left join fct_member_active_detail t2
on t1.member_id = t2.member_id
and t2.ds = '2024-10-10'
where t1.ds = '2024-10-10'
10- . 针对关键逻辑必须进行注释说明
11-. insert select 后最外层的字段必须添加注释,以记录字段的用途
12-. 使用join时,明确关联条件避免笛卡尔积
13-. 某些子查询可以使用join替代,提高可读性
-- 子查询(不推荐)
select
……
from customers
where customer_id in (select customer_id from orders where order_amount > 1000);
-- JOIN 替代(推荐)
select
……
from customers a1
join orders a2
on a1.customer_id = a2.customer_id
where a2.order_amount > 1000;