作为新时代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 t1LEFT JOIN (SELECT t1.etl_dt, t1.bank_id, COUNT(DISTINCT t1.orders_id) AS CNT FROM ad.user_orders AS t1GROUP BYt1.etl_dt, t1.bank_id) AS t2ON t1.etl_dt = t2.etl_dtAND t1.banker_id = t2.bank_idWHERE t1.etl_dt = '2018-10-11'AND t1.bank_id = 1001GROUP BY t1.etl_dt, t1.bank_id
;SELECT * FROM ad.sy_test_xxx_order_20181128 AS t
;--END