hive常用命令记录

news/2024/11/17 7:23:10/

hive常用命令记录

  • 1. Table相关操作
    • 1.1 创建表
    • 1.2 增加列
    • 1.3 删除列
  • 2. 日期相关操作
    • 2.1 日期串截取
    • 2.2 转换时间戳为 yyyy-MM-dd格式
  • 3. 使用case when实现行列互转

1. Table相关操作

1.1 创建表

CREATE TABLE app.table_name
(id BIGINT COMMENT 'id',column_A string COMMENT '列A',column_B string COMMENT '列B',column_C string COMMENT '列C'
)
COMMENT '表描述';

1.2 增加列

ALTER TABLE app.table_name 
ADD COLUMNS 
(column_D string COMMENT '列D'
);

1.3 删除列

不支持delete column操作,可以使用replace columns实现字段删除操作;
删除column_C

ALTER TABLE dev.edi_partner_service_usage replace columns  (id BIGINT COMMENT 'id',column_A string COMMENT '列A',column_B string COMMENT '列B',column_D string COMMENT '列D'
);

2. 日期相关操作

2.1 日期串截取

取yyyy-MM-dd HH:mm:ss格式日期串的yyyy-MM-dd部分,使用字符串SUBSTR函数;

SUBSTR(create_time, 1, 7)

2.2 转换时间戳为 yyyy-MM-dd格式

from_unixtime(cast(logging_request_time/1000 as bigint), 'yyyy-MM-dd')

3. 使用case when实现行列互转

假设现在有如下数据(表 score )

姓名科目成绩
晓明语文100
晓明数学100
晓明英语100
小红语文100
小红数学100
小红英语100

我们希望以如下方式展示

姓名语文数学英语
晓明100100100
小红100100100

可以使用case when来实现

select 	姓名,case when 科目='语文' THEN score ELSE 0 END 语文,case when 科目='数学' THEN score ELSE 0 END 数学,case when 科目='英语' THEN score ELSE 0 END 英语
from score
group by 姓名

http://www.ppmy.cn/news/144435.html

相关文章

[数据库]关于数据库设计的原则

数据表设计原则: 自动编号的ID应该设计为bigint,因为int可能不够用,并且,为了便于统一管理,写的舒心不出错,建议所有表的自增ID全部使用bigint 。(缺点是占空间,如果有20亿条数据,浪…

【OpenCV DNN】Flask 视频监控目标检测教程 05

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 05 3.5 浏览器播放视频服务器上的视频文件cvFlask05 项目文件树cvFlask05 项目程序文件cvFlask05 项目网页模版cvFlask05 项目运行 3.6 浏览器播放视频文件控制按钮cvFla…

波司登云原生微服务治理探索

作者:曾孟琪(山猎) 背景 波司登创始于1976年,专注于羽绒服的研发、设计、制作,是全球知名的羽绒服生产商。波司登用一系列世人瞩目的辉煌成绩证明了自己的实力:连续26年全国销量领先,连续22年…

CTP 4097错误

这天开发ctp,在运行程序的时候老师出现4097错误,不能连接,让我很无奈。可是不知道为什么鬼使神差的让我发现通过这样可以解决。 我的方法是: 1、先把自己的BrokerID和Password赋空值,运行一次程序。 即是&#xff1…

VC6.0编译时出现:error C2660: 'VarCmp' : function does not take 4 parameters

VC6.0编译时出现:error C2660: VarCmp : function does not take 4 parameters,全部重建一下就好啦! build all

C++ Visual Studio报错:error C4430

属性->C/C->高级->禁用特定警告,输入4430

YUYV(YUV422)转I420(YUV420)C++代码

int YUV422To420(unsigned char yuv422[], unsigned char yuv420[], int width, int height) {int ynum width * height;int i, j, k 0;//得到Y分量for (i 0; i < ynum; i) {yuv420[i] yuv422[i * 2];}//得到U分量for (i 0; i < height; i) {if ((i % 2) ! 0)contin…

vc++6.0(Visual C++)中文企业版

名称;vc6.0(Visual C)中文企业版 版本&#xff1a;6.0 软件大小&#xff1a;234M 软件语言&#xff1a;简体中文 软件授权&#xff1a;免费版 应用平台&#xff1a;Win2000/WinXP/Win2003/Vista/Win7/Win8 Visual C是一个功能强大的可视化软件开发工具。自1993年Microsoft公司…