阿里云Dataworks SQL速查表
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 EXISTStable1
按行插入内容
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"
日期函数
to_char(datetime, ‘yyyy-mm-dd hh:mi:ss’)
将datetime转为格式化字符串
arg1:datetime, arg2:‘转为的时间字符串格式,如yyyymmdd’to_date(datetime, format)
将datetime转为日期,要求format必须和datetime格式对应, 字符长度一一对应不可缺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速查表相关推荐
- 【CheatSheets】AI速查表集合 一图胜千言
机器学习和深度学习工程师必备-速查表 机器学习很复杂.对于新手来说,如果他们没有合适的学习资源,则开始学习机器学习会很痛苦.大多数机器学习库很难理解,学习曲线可能会令人沮丧. 最近在Github发现一 ...
- Sqlmap速查表/功能移植/Python批量检测SQL注入
title: Sqlmap速查表与Python进行功能移植 copyright: true top: 0 date: 2021-02-27 11:59:00 tags: [扫描注入,注入,sqlmap ...
- SQL 窗口函数速查表
文章目录 窗口函数概述 PARTITION BY ORDER BY 窗口大小 SQL 子句逻辑执行顺序 常用窗口函数 排名窗口函数 取值窗口函数 聚合窗口函数 大家好!我是只谈技术不剪发的 Tony ...
- 深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力
摘要: Forrester发布了Now Tech: Cloud Data Warehouse Q1 2018报告,报告对云化数据仓库(Cloud Data Warehouse, CDW)的主要功能.区 ...
- 26 页高清大数据开发代码速查表,提升效率必备!【可下载】
在各大互联网公司高价抢夺数据人才的环境下,为谋求长期发展.获得高薪,很多人转行到了大数据领域.这条路人才虽缺,但要成为优秀大数据工程师并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精 ...
- 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全
数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全 Learn, compete, hack and get hired! 学习.竞争.精进.996. 东西永远学不完 ...
- pandas常用函数说明及速查表
pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...
- 资源|最好的九张机器学习/深度学习代码速查表,附高清下载
作者:Kailash Ahirwar 机器之心编译 文末附高清速查表下载 对于初学者来讲,入门机器学习和深度学习非常困难:同时深度学习库也难以理解.通过收集多方资源,我在 Github 上创建了一个速 ...
- 程序员/设计师能用上的 75 份速查表(转)
75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Pyt ...
最新文章
- mysql5.7 数据表的基本操作
- oracle exp/imp命令详解
- k8s object对象(pod controller)介绍
- Cisco常见路由器密码和版本恢复方法
- 详解Java解析XML的四种方法(转载)
- 转正答辩提问_电信专业学生党支部预备党员转正答辩
- MySQL5.7 版本的安装、配置
- linux 的 grep 命令 和 ngrep 命令
- 电脑公司Win11 64位全新旗舰版镜像V2021.08
- mysql select不走索引_避免写出不走索引的SQL, MySQL
- 下次偶转贴贴子时得加上转贴才行~~~
- Redis 更新(set) key值 会重置过期时间问题
- win10北通手柄没反应_【游戏手柄攻略】WIN10怎样校准和设置游戏手柄
- 【Java面试】第二章:P5级面试
- mysql 联合主键的作用
- STM32MP157网络环境 TFYPNFS搭建手册-学习记录
- Win10安装Neo4j
- [Python]Spyder常用设置方便使用-持续更新
- 解决ROS系统 rosdep update超时问题的新方法
- SyntaxError: Unexpected token o in JSON at position 1 JSON.parse (<anonymous>)
热门文章
- 云服务器数据盘数据丢失,磁盘数据恢复,testdisk工具的使用
- 高通 camera CTS Verify FOV calibration debug
- 微软要如何击败Salesforce?Office365、Azure、Dynamics365 全面布局AI | 双语
- CRM为外贸企业拓展商机提供原动力
- 十.控制文件指针移动,文本的修改
- android5.1手机root,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
- SpringBoot @Transactional
- 金融量化-赔率与概率
- UEFI和EFI分别是什么|UEFI和EFI有什么区别
- 麒麟9000和麒麟990哪个好