SQL总结

一、建表

---建立一次性表格
drop table if exists table_name;
create table table_name as select from table_name... ;
create table if not exists table_name;---建立累积插入表格
1、
create table table_name(a string , b string , c decimal);
insert overwrite table table_name partition(ds='${bizdate}') SELECT * from table_name1...;---partition(ds='${bizdate}')为分区时间2、
create table if not exists table_name(stat_date string comment '统计日期')COMMENT '高计算费用---节点' PARTITIONED BY (ds STRING COMMENT 'yyyymmdd')LIFECYCLE 30; ---comment是备注、注释----的意思; partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返----回一个分组中的多条记录;LIFECYCLE表示表的生命周期,临时表生命周期不要设置太久。
INSERT OVERWRITE TABLE table_name PARTITION(ds = '${bizdate}')SELECT  t1.store_id

二、获取文本部分内容

1、截取字符串
substr(col,1,10)2、获取josn字段中的内容
select get_json_object(json '{"a":1, "b":2}', '$.a');--返回{"b":"1","a":"2"}。一个JSON对象中可以出现相同的Key,可以成功解析,返回第一个Value值。换行符(\n)、引号(")等JSON保留字符使用字符串'\n'、'\"'显示。
select get_json_object('{"b":{"b":"1","a":"2"},"a":"2"}', '$.b');---提取JSON对象src_json.json中的信息
src_json = {"store":
{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],
"bicycle":{"price":19.95,"color":"red"}
},
"email":"amy@only_for_json_udf_test.net",
"owner":"amy"
}--提取owner字段信息,返回amy。
select get_json_object(src_json.json, '$.owner') from src_json--提取store.fruit字段第一个数组信息,返回{"weight":8,"type":"apple"}。
select get_json_object(src_json.json, '$.store.fruit[0]') from src_json;3、切割取值
SUBSTRING_INDEX(SUBSTRING_INDEX(index_list_06,'TOTAL:',-1),';',1)  AS 实物数量;----AVAIL:2.0;AVAIL_NOMINUS:2.0;FROZEN:0.0;FROZEN_NOMINUS:0.0;TOTAL:2.0;TOTAL_NOMINUS:2.04、提取数组型JSON对象的信息
--返回2222。
select get_json_object('{"array":[["aaaa",1111],["bbbb",2222],["cccc",3333]]}','$.array[1][1]');--返回["h0","h1","h2"]。
set odps.sql.udf.getjsonobj.new=true;
select get_json_object('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[*]');--返回h1。
select get_json_object('{"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"}','$.ccc.hhh[1]');5、提取带有.的JSON对象中的信息
--创建一张表。
create table mf_json (id string, json string);
--向表中插入数据,Key带.。
insert into table mf_json (id, json) values ("1", "{
\"China.beijing\":{\"school\":{\"id\":0,\"book\":[{\"title\": \"A\",
\"price\": 8.95},{\"title\": \"B\",\"price\": 10.2}]}}}");--向表中插入数据,Key不带.。
insert into table mf_json (id, json) values ("2", "{
\"China_beijing\":{\"school\":{\"id\":0,\"book\":[{\"title\": \"A\",
\"price\": 8.95},{\"title\": \"B\",\"price\": 10.2}]}}}");--取id的值,查询key为China.beijing,返回0。由于包含.,只能用['']来解析。
select get_json_object(json, "$['China.beijing'].school['id']") from mf_json where id =1;--取id的值,查询key为China_beijing,返回0。查询方法有如下两种。
select get_json_object(json, "$['China_beijing'].school['id']") from mf_json where id =2;
select get_json_object(json, "$.China_beijing.school['id']") from mf_json where id =2;6、JSON字符串涉及转义
set odps.sql.udf.getjsonobj.new=true;
--返回"1"。
select get_json_object('{"a":"\\"1\\"","b":"2"}', '$.a'); 
--返回'1'。
select get_json_object('{"a":"\'1\'","b":"2"}', '$.a');

三、时间处理

--获取时间对应星期几
WEEKDAY(TO_date(t.周度日期,'yyyy-mm-dd')) as 星期--对应本年的周数
WEEKOFYEAR(TO_date(t.周度日期,'yyyy-mm-dd'))as   当年周数--对应月份
substr(TO_date(t.日期,'yyyy-mm-dd'),1,7) as 月份--当前日期
getdate();
to_char(getdate(), 'yyyy-MM-dd');--滚动时间范围取值
sign_time >= DATEADD(TO_DATE(MAX_PT('table_name'),'YYYYMMdd'),-30,'dd') AND sign_time < DATEADD(TO_DATE(MAX_PT('table_name'),'YYYYMMdd'),1,'dd')---时间对应天数的日期
DATEADD(GETDATE(),-14,'DAY')

四、其他

---UNION
select 月份,单据仓库code,仓库名称,sum(price) as  当期数, '越库配货额' as 指标项
from  hema_fdc_outsource_data_handle_yqz  where source_order_type = '越库'
group by 月份,单据仓库code,仓库名称
UNION 
select 月份,单据仓库code,仓库名称,sum(price) as  当期数, '配货额' as 指标项
from  hema_fdc_outsource_data_handle_yqz  ---常规语句
select a , sum(b) as b * from table_name where a =''and b between 1 and 2 group by a order by  sum(b) desc;---显示分区
show PARTITIONS wdk_wms.adl_wdk_warehouse_sku_for_hmrex;---case ... when ...then...end as 
case col when <100 then '不及格'
when >=100 and < 150 then '良'
else '优秀'
end as col1--IF函数
SUM(IF(c.item_status != -1, 1, 0)) AS releasedSUM(IF((if_app = 'true' AND c.item_status = 1), 1, 0)) AS app_on_saleregexp_extract(a.content, 'if_app":(.*?)(,|$)', 1) AS if_appCOUNT(DISTINCT CASE WHEN order_channel = 2 THEN to_char(gmt_create, 'yyyy-MM-dd') END) AS cnt_day_app--窗口函数
SUM(A.总消耗量) OVER (partition by A.仓编码,A.商品编码 ORDER BY A.统计日期,A.仓编码,A.商品编码 rows between 6 preceding and current row)--join
join\left join ...on \right join ... on---字段处理
substr(col , 1,10) 
get_json_object(col , '$.TAX_PRICE')
SUBSTRING_INDEX(SUBSTRING_INDEX(index_list_06,'TOTAL:',-1),';',1)  AS 实物数量,---分区选择
dt = max_pt('hm_ods.s_delivery_cargo_item_detail_wdk_ums_app')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes那点事儿——配置存储:ConfigMap、Secret

配置存储&#xff1a;ConfigMap、Secret 前言ConfigMapSecret 前言 前面介绍过的各种存储主要都是做数据的持久化&#xff0c;本节介绍的ConfigMap和Secret主要用于配置文件存储&#xff0c;或者环境变量的配置。 ConfigMap 创建ConfigMap后&#xff0c;数据实际会存储在K8s中…

Spring Cloud 介绍

文章目录 微服务技术栈Spring Cloud 介绍京东、阿里的微服务架构SpringBoot 和 SpringCloud 版本选择Springboot版本选择Springcloud版本选择Springcloud和Springboot之间的依赖关系如何看Spring Cloud 组件的升级替换 微服务技术栈 [toc] Spring Cloud 介绍 Spring Cloud是…

代码随想录算法训练营第二十五天 | 216.组合总和III、 17.电话号码的字母组合

216.组合总和III 题目链接&#xff1a;216.组合总和III 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序…

ULINK2仿真器安装使用之工程设置

一、 ULINK2仿真器 ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器&#xff0c;是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能&#xff0c;还增加了串行调试&#xff08;SWD&#xff09;支持&#xff0c;返回时钟支持和实时代理等功能。开发工程师通…

基于python热门旅游景点推荐系统+爬虫技术

大数据分析&#xff0c;数据可视化等皆可用。 源码分享。

vue-vben-admin 与.net core 结合实例 【自学与教学 小白教程】---第3节

ue-vben-admin 与.net core 结合实例 这里计划使用.net core 作为后端 。目标&#xff1a;打造好看 易用 开箱即用 的netcore一体化框架。Vue Vben Admin For NetCore 取命 hcrain-vvadmin 我不是前端人员 但有时开发还是要写一些界面。 之前使用layui是时候 狠心升级下了。 …

kubesphere和k8s的使用分享

文章目录 什么是kubernetesKubernetes的部分核心概念互式可视化管理平台与kubernetes的关系市面是常见的kubernetes管理平台 什么是kubesphereKubesphere默认安装的组件Kubesphere涉及的服务组件kubesphere的安装Kubesphere相关的内容 什么是kubernetes 就在这场因“容器”而起…

React16源码: React中的update和updateQueue的源码实现

React中的update和updateQueue 1 &#xff09;概述 在 ReactDOM.render 过程中&#xff0c;还需要创建一个 update 对象update 用于记录组件状态的改变的一个对象&#xff0c;它存放于Fiber对象的 updateQueue 中updateQueue&#xff0c;它是一个单向链表的结构&#xff0c;一…

性能优化--实战利用arthas排查java服务cpu占用过高的问题

使用jps -l查看目前的java应用进程 启动arthas&#xff0c;选择需要监控的进程 dashboar查看该应用整体情况 使用thread命令&#xff0c;查看占用cpu过高的几个线程ID 然后使用thread 线程ID查看具体线程在执行哪些内容&#xff0c;可以看到对应的类和方法 正在上传… 重…

Guava:Ordering 排序工具

简介 排序器 Ordering 是 Guava流畅风格比较器 Comparator 的实现&#xff0c;它可以用来为构建复杂的比较器&#xff0c;以完成集合排序的功能。 从实现上说&#xff0c;Ordering 实例就是一个特殊的 Comparator 实例。Ordering 把很多基于 Comparator 的静态方法&#xff0…

OpenWrt智能路由器Wan PPPoE拨号配置方法

OpenWrt智能路由器的wan PPPoE拨号配置方法和我们常见的不太一样, 需要先找到wan网卡,然后将协议切换为 PPPoE然后才能看到输入上网账号和密码的地方. 首先登录路由器 http://openwrt.lan/ 然后找到 Network --> Interfaces 这里会显示你当前的路由器的所有接口, 选择 …

WPS通配符匹配数字

1.WPS通配符[36][0-9]{3} 这个正则表达式 [36][0-9]{3} 的含义如下&#xff1a; [36]&#xff1a;表示匹配数字 3 或者数字 6 中的任意一个字符。[0-9]&#xff1a;代表匹配任意一个数字字符&#xff08;0 到 9&#xff09;。{3}&#xff1a;表示前面的表达式&#xff08;即 …

【Machine Learning】Supervised Learning

本笔记基于清华大学《机器学习》的课程讲义监督学习相关部分&#xff0c;基本为笔者在考试前一两天所作的Cheat Sheet。内容较多&#xff0c;并不详细&#xff0c;主要作为复习和记忆的资料。 Linear Regression Perceptron f ( x ) s i g n ( w ⊤ x b ) f(x)sign(w^\top x…

MySQL8.0 升级

将 MySQL8.0.30 升级到 MySQL8.0.32 备份旧数据 rootLAPTOP-FPIQJ438:/data/backup# xtrabackup --backup --userroot --password123456 --socket/tmp/mysql.sock --target-dir/data/backup/ 2024-01-08T16:46:38.98768708:00 0 [Note] [MY-011825] [Xtrabackup] recognized s…

CPU控制的独立式键盘扫描实验

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit S1P1^4; //将S1位定义为P1.4引脚 sbit S2P1^5; //将S2位定义为P1.5引脚 sbit S3P1^6; //将S3位定义为P1.6引脚 sbit S4P1^7; //将S4位定义为P1.7引脚 unsigned char keyval; /…

连接服务器Mysql出现“Host ‘xxx‘ is not allowed to connect to this MySQL server“解决方法

远程连接提示&#xff1a;Host xxx is not allowed to connect to this MySQL server。是mysql未开启mysql远程访问权限导致。 登录mysql&#xff0c;发现出现了 Access denied for user ‘root’ T’localhost (using password: YES) 此时先找到my.cnf文件,使用命令mysql --…

http跟https有什么区别?

HTTPS和HTTP的概念&#xff1a; HTTP&#xff1a;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准&#xff08;TCP&#xff09;&#xff0c;用于从WWW服务器传输超文本到本地浏览器的传输协议&#xff0c;它可以使浏览器更加高效&am…

智慧灌溉解决方案(基于物联网的智能灌溉系统)

​ 详情&#xff1a;智慧水务数字孪生安全监测解决方案提供商-星创 (key-iot.com.cn) 随着农业IOT的快速发展,智慧灌溉正成为提高农业水资源利用效率,实现精准灌溉的重要技术手段。完整的智慧灌溉系统由实地各类传感设备以及后台管理软件平台组成,可以实现对整个灌区的监测和精…

python(17)--文件的输入/输出

前言 在Python中&#xff0c;文件文本操作是非常重要的&#xff0c;主要有以下几个原因&#xff1a; 数据持久性&#xff1a;当你需要长期存储数据&#xff0c;如用户的个人信息、交易记录或数据库元数据等&#xff0c;将数据保存在文件中是一种常见的方法。文件系统提供了持…

非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I)

Title: 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I) 文章目录 前言I. 从高斯-牛顿法II. 到阻尼高斯-牛顿法III. 再到列文伯格-马夸尔特法1. 列文伯格-马夸尔特法的由来2. 列文伯格-马夸尔特法的说明说明一. 迭代方向说明二. 近似于带权重的梯度…