Dataworks SQL常用指令

DML(Data Manipulation Language)数据操纵语言:

适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.

DDL(Data Definition Language)数据定义语言:

适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.

文章目录

  • Dataworks SQL常用指令
  • 一、速查表
  • 二、 创建表
  • 三、 SQL JOIN连接
    • SQL GROUP BY
  • 子查询
  • 转换数据类型
  • case when
  • 行转列
  • 字符串处理函数
  • 日期函数
  • JSON解析
  • 聚合函数
  • row_number() over
  • 三、 实验环境
  • 常见报错

一、速查表


二、 创建表

  • 创建表
    CREATE TABLE IF NOT EXISTS table1

  • 按行插入内容
    INSERT INTO table1 (field1, filed2, field3) VALUES
    (1,1,1),
    (2,2,2),
    (3,3,3)

  • 覆盖表内容
    INSERT OVERWRITE TABLE table1 PARTITION(ds=20220224)
    SELECT *
    FROM XXXX

三、 SQL JOIN连接

  • A inner join B 取交集。

  • A left join B 取 A 全部,B 没有对应的值为 null。

  • A right join B 取 B 全部 A 没有对应的值为 null。

  • A full outer join B 取并集,彼此没有对应的值为 null。

对应条件在 on 后面填写。on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

SQL GROUP BY

下面是 “access_log” 网站访问记录表的数据:

- 统计各site_id访问次数总数
SELECT site_id, SUM(access_log.count) AS nums
FROM access_log GROUP BY site_id;

子查询

转换数据类型

cast(xxx, BIGINT)

case when

应用于select

SELECT client_id, user_id, type, created_at,CASE WHEN type in (12,13) THEN 'allot'WHEN type='11' THEN 'order'ELSE 'other'END AS allot_type
FROM ods_dx_client_log
WHERE ds=20220208 and dt='snap'

行转列


方法1: sum(case when xxx then xxx end)
sum()是为了把空值加入,也可用max()替代

SELECT sum(CASE WHEN allot_type='allot' THEN cnt END) allot,sum(CASE WHEN allot_type='order' THEN cnt END) _order
FROM table;


方法2: if(condition, val1, val2)

SELECT sum(if(t2.allot_type='allot', cnt, 0)) allot, sum(if(t2.allot_type='order', cnt, 0)) _order
FROM table;

字符串处理函数

concat(a,b)

命令格式:
concat(string A, string B…)
参数说明:
● A,B等为string类型,若输入为bigint, double, datetime类型会隐式转换为string后参与运算,其它类型报异常。
● 用途:
返回值是将参数中的所有字符串连接在一起的结果。
● 备注:
如果没有参数或者某个参数为NULL,结果均返回NUL

from_unixtime(timestamp)

时间戳转datetime

substr(“abc”, 2)
从index=2,截取"abc",即"bc"

日期函数

  1. to_char(datetime, ‘yyyy-mm-dd hh:mi:ss’)
    将datetime转为格式化字符串
    arg1:datetime, arg2:‘转为的时间字符串格式,如yyyymmdd’

  2. to_date(datetime, format)
    将datetime转为日期,要求format必须和datetime格式对应, 字符长度一一对应不可缺

  3. from_unixtime(unixtime)
    将时间戳转为datetime

JSON解析

1.get_json_object(string json, string path)

select *,GET_JSON_OBJECT(meta, '$.hds-v2-my') as hds_v2
from dwd_user_tags_format_new
where ds=20220119
limit 10;

聚合函数

row_number() over

命令格式:
row_number() over(partition by col_list1 order by col_list2)
用途:
返回行号,从1开始
参数说明:
● col_list1: 分组的列
● col_list2: order_by参考列

如 row_number() over(partition by client_id order by created_at)
即返回以client_id为分组,按成单时间排序的结果的行号

三、 实验环境

http://sqlfiddle.com/#!9/9ed218/1

常见报错

  • Every derived table must have its own alias(sql语句错误解决方法)

此报错常见于子查询,Mysql要求每一个派生出来的表都必须有一个自己的别名,因此需要将子查询派生出来的表加上别名即可;

阿里云Dataworks SQL速查表相关推荐

  1. 【CheatSheets】AI速查表集合 一图胜千言

    机器学习和深度学习工程师必备-速查表 机器学习很复杂.对于新手来说,如果他们没有合适的学习资源,则开始学习机器学习会很痛苦.大多数机器学习库很难理解,学习曲线可能会令人沮丧. 最近在Github发现一 ...

  2. Sqlmap速查表/功能移植/Python批量检测SQL注入

    title: Sqlmap速查表与Python进行功能移植 copyright: true top: 0 date: 2021-02-27 11:59:00 tags: [扫描注入,注入,sqlmap ...

  3. SQL 窗口函数速查表

    文章目录 窗口函数概述 PARTITION BY ORDER BY 窗口大小 SQL 子句逻辑执行顺序 常用窗口函数 排名窗口函数 取值窗口函数 聚合窗口函数 大家好!我是只谈技术不剪发的 Tony ...

  4. 深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力

    摘要: Forrester发布了Now Tech: Cloud Data Warehouse Q1 2018报告,报告对云化数据仓库(Cloud Data Warehouse, CDW)的主要功能.区 ...

  5. 26 页高清大数据开发代码速查表,提升效率必备!【可下载】

    在各大互联网公司高价抢夺数据人才的环境下,为谋求长期发展.获得高薪,很多人转行到了大数据领域.这条路人才虽缺,但要成为优秀大数据工程师并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精 ...

  6. 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全

    数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全 Learn, compete, hack and get hired! 学习.竞争.精进.996. 东西永远学不完 ...

  7. pandas常用函数说明及速查表

    pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...

  8. 资源|最好的九张机器学习/深度学习代码速查表,附高清下载

    作者:Kailash Ahirwar 机器之心编译 文末附高清速查表下载 对于初学者来讲,入门机器学习和深度学习非常困难:同时深度学习库也难以理解.通过收集多方资源,我在 Github 上创建了一个速 ...

  9. 程序员/设计师能用上的 75 份速查表(转)

    75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Pyt ...

最新文章

  1. mysql5.7 数据表的基本操作
  2. oracle exp/imp命令详解
  3. k8s object对象(pod controller)介绍
  4. Cisco常见路由器密码和版本恢复方法
  5. 详解Java解析XML的四种方法(转载)
  6. 转正答辩提问_电信专业学生党支部预备党员转正答辩
  7. MySQL5.7 版本的安装、配置
  8. linux 的 grep 命令 和 ngrep 命令
  9. 电脑公司Win11 64位全新旗舰版镜像V2021.08
  10. mysql select不走索引_避免写出不走索引的SQL, MySQL
  11. 下次偶转贴贴子时得加上转贴才行~~~
  12. Redis 更新(set) key值 会重置过期时间问题
  13. win10北通手柄没反应_【游戏手柄攻略】WIN10怎样校准和设置游戏手柄
  14. 【Java面试】第二章:P5级面试
  15. mysql 联合主键的作用
  16. STM32MP157网络环境 TFYPNFS搭建手册-学习记录
  17. Win10安装Neo4j
  18. [Python]Spyder常用设置方便使用-持续更新
  19. 解决ROS系统 rosdep update超时问题的新方法
  20. SyntaxError: Unexpected token o in JSON at position 1 JSON.parse (<anonymous>)

热门文章

  1. 云服务器数据盘数据丢失,磁盘数据恢复,testdisk工具的使用
  2. 高通 camera CTS Verify FOV calibration debug
  3. 微软要如何击败Salesforce?Office365、Azure、Dynamics365 全面布局AI | 双语
  4. CRM为外贸企业拓展商机提供原动力
  5. 十.控制文件指针移动,文本的修改
  6. android5.1手机root,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
  7. SpringBoot @Transactional
  8. 金融量化-赔率与概率
  9. UEFI和EFI分别是什么|UEFI和EFI有什么区别
  10. 麒麟9000和麒麟990哪个好