目录
1.四舍五入
2.向上取整
3.向下取整
4.Hive 分区
5.case when条件语句
6.日期函数
7.字符串函数
8.窗口函数
1️⃣排序函数
1.四舍五入
round
select round(3.14) —>3
2.向上取整
ceiling
select ceiling(12.15) —>13
3.向下取整
floor
select floor(12.56) —>12
4.Hive 分区
随着系统运行时间的增加,表的数据量会越来越大,而Hive查询数据的数据的时候通常使用的是「全表扫描」,这样将会导致大量不必要的数据进行扫描,从而查询效率会大大的降低。 从而Hive引进了分区技术,使用分区技术,「避免Hive全表扫描,提升查询效率」
5.case when条件语句
注:不要忘记写then和end。
语法一:
CASE 字段 WHEN 值1 THEN 值1[WHEN 值2 THEN 值2]*[ELSE 值] END
语法二:
CASE WHEN 条件表达式 THEN 值1[WHEN 条件表达式 [and or] 条件表达式THEN 值2]*[ELSE 值] END
6.日期函数
链接🔗:https://www.cnblogs.com/ShadowFiend/p/12888055.html
1️⃣date_format
释义:格式化日期
用法:date_format(date,格式)
2️⃣date_add
释义:日期加法函数,数字为正,则加多少天,若数字为负数,则为减多少天;
用法:date_add(date,number);
3️⃣date_sub
释义:日期减法函数,数字为正,则减多少天,若数字为负数,则为加多少天
用法:date_sub(date,number)
4️⃣datediff
释义:日期比较函数,第一个日期减去第二个时期数字,为正,则前者大于后者,为负,则前者小于后者;
用法:datediff(date1,date2)
5️⃣current_timestamp
释义:获取当前时间
6️⃣current_date
释义:获取当前日期
7️⃣to_date
释义:转日期函数,默认转为yyyy-MM-dd格式
用法:to_date(time)
8️⃣year
释义:获取时间的年份
用法:year(date)
9️⃣month
释义:获取时间的月份
用法:month(date)
🔟day
释义:获取时间的天
用法:day(date)
11.Trunc
TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期
-返回当月的第一天
select trunc('2016-08-16','MM') --2016-08-01
-返回当年的第一天
select trunc('2016-08-16','YEAR') --2016-01-01
时间戳与日期函数转化
7.字符串函数
链接🔗:https://blog.csdn.net/qq_44011386/article/details/108364509
- 转换数据类型Cast
- 拼接字符串concat(string A, string B…)
- 带连接符的拼接字符串concat_ws(string SEP, string A, string B…)
- 翻转字符串reverse(string A)
- 字符串长度length(string A)
- 截取字符串substr(string A, int start),substring(string A, int start)
- 截取字符串substr(string A, int start, int len),substring(string A, int start, int len)
- 转换为大写upper(string A) ucase(string A)
- 转换为小写lower(string A) lcase(string A)
- 去除空格trim(string A)
- 去除左边电空格ltrim(string A)
- 去除右边空格rtrim(string A)
- 正则表达式提取字符串regexp_extract(string subject, string pattern, int index)
- 从链接中提取部分parse_url(url, partToExtract[, key]) - extracts a part from a URL
- get_json_object(string json_string, string path)
- 分割字符串split(string str, string pat)
8.窗口函数
<窗口函数> OVER ([PARTITION BY <列清单>] ORDER by <排序用列清单>)
1️⃣row_number/rank/dense_rank函数
row_number
rank
dense_rank
2️⃣lag/lead函数
SQL中lag()和lead()函数使用_lag函数-CSDN博客
LAG
LEAD
3️⃣MySQL数据库查询时间段的两种方法
between and和 "><符号"
链接🔗:查询某时间范围内的数据SQL语句_sql查询时间段内的数据-CSDN博客
9. with as用法
可看作是生成一个临时表,后续可调用