shell 提取sql 的字段名表名_SQL代码风格规范

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值