• sql学习笔记(三)


    目录

    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。

    语法一:

    1. CASE 字段 
    2. WHEN1 THEN1
    3. [WHEN2 THEN2]*
    4. [ELSE 值] 
    5. END 

    语法二:

    1. CASE 
    2. WHEN 条件表达式 THEN1
    3. [WHEN 条件表达式 [and or] 条件表达式THEN2]*
    4. [ELSE 值] 
    5. 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

    1. 转换数据类型Cast
    2. 拼接字符串concat(string A, string B…)
    3. 带连接符的拼接字符串concat_ws(string SEP, string A, string B…)
    4. 翻转字符串reverse(string A)
    5. 字符串长度length(string A)
    6. 截取字符串substr(string A, int start),substring(string A, int start)
    7. 截取字符串substr(string A, int start, int len),substring(string A, int start, int len)
    8. 转换为大写upper(string A) ucase(string A)
    9. 转换为小写lower(string A) lcase(string A)
    10. 去除空格trim(string A)
    11. 去除左边电空格ltrim(string A)
    12. 去除右边空格rtrim(string A)
    13. 正则表达式提取字符串regexp_extract(string subject, string pattern, int index)
    14. 从链接中提取部分parse_url(url, partToExtract[, key]) - extracts a part from a URL
    15. get_json_object(string json_string, string path)
    16. 分割字符串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用法

    可看作是生成一个临时表,后续可调用

  • 相关阅读:
    HTTPS的传输过程
    Thread线程类基本使用(下)
    哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)
    使用maven模板快速生成项目
    记录前后端接口使用AES+RSA混合加解密
    ELK整合springboot(第二课)
    动态规划:较小集合的累加和 + 限制集合中数字的个数
    零基础学习CANoe Panel(1)—— 新建 Panel
    [ROS](11)ROS通信 —— 服务(Service)通信编程之srv(C++)(Python)
    C++的向上转型
  • 原文地址:https://blog.csdn.net/Raine_Gu/article/details/134269962