![db70accc5d5ffcef87c24e15152672ea.png](https://img-blog.csdnimg.cn/img_convert/db70accc5d5ffcef87c24e15152672ea.png)
作为新时代SQL Boy,大部分时间都是在写sql,很多时候看到别人写的代码实在是不规范,命名随便写,没有缩进,看起来很没有逻辑性,今天分享下我自己的一些规范,从这里修改而来。
--名称:xxx项目
--目的:规范sql代码
--日期:2018-11-16
--Author:苏格拉底的猫
--E-mail:suyin1203@gmail.com
--修改人:
--修改时间:
--修改原因:
--计算逻辑
--1、提取数据
--2、数据初步处理
--3、指标汇总处理
--4、发送预警邮件
-------------------------------风格说明-----------------------------------------
--SQL代码风格
--资料来源:https://www.sqlstyle.guide/zh/
--要点
--项目开头
--名称:
--目的:
--作者:
--时间:
--修改:
--计算逻辑:
--SQL代码
--关键字:所有的关键字用大写,字段名和表名用小写,SELECT, FROM
--表名:使用业务相关的单词组成,ad.sy_test_xxx_order_20181128
--字段名:使用有意义的英文单词,orders, revenue, 尽量少用中文
--对齐:SELECT,FROM,WHERE,GROUP等关键词右对齐,字段名左对齐。每个字段一行
--空格:在运算符两边加空格, order1 + order2
--换行:遇到AND 和 OR 以及分号,都换行,分号单独成一行,每个字段单独一行
--JOIN:JOIN语句缩进到川流的另一侧
--宽度:每行不要超过80个字符,超过了会造成阅读苦难(编辑器不要出现左右拖动条)
--别名:表别名 AS 后从t1开始,不要从t开始,最后会导致表字段不能对齐
--逗号:逗号写在字段的最前面,方便增加或者注释字段,也方便在字段后增加字段注释
--CASE WHEN:WHEN和TEN单独成行
-- 案例,只是展示,代码无任何含义
-- xxx订单
DROP TABLE IF EXISTS ad.sy_test_xxx_order_20181128
;
CREATE TABLE ad.sy_test_xxx_order_20181128
AS
SELECT
t1.etl_dt --时间
, t1.bank_id
, COUNT(DISTINCT t1.orders_id) AS CNT
FROM ad.order AS t1
LEFT JOIN (SELECT
t1.etl_dt
, t1.bank_id
, COUNT(DISTINCT t1.orders_id) AS CNT
FROM ad.user_orders AS t1
GROUP BY
t1.etl_dt
, t1.bank_id
) AS t2
ON t1.etl_dt = t2.etl_dt
AND t1.banker_id = t2.bank_id
WHERE t1.etl_dt = '2018-10-11'
AND t1.bank_id = 1001
GROUP BY
t1.etl_dt
, t1.bank_id
;
SELECT *
FROM ad.sy_test_xxx_order_20181128 AS t
;
--END