1、分步执行(with…as…)
Hive SQL中的WITH…AS…语句可以用于分步执行,即将一个大的查询语句拆分成多个小的查询语句,每个小的查询语句都可以使用WITH…AS…语句定义一个临时表,然后在后面的查询语句中使用这些临时表。
用法1,增加一张临时表/临时步骤
with table1 as (
select key from src where key = '5'
)
select * from table1;
用法2,增加并列临时表
with
table1 as (
select key from table2 where key = '5'
),
table2 as (
select key from src where key = '5'
)
select * from (
select key from table1
)record;
用法3,增加嵌套临时表(最常用)
with tmp2 as (
with tmp1 as (
select * from xxx
)
select * from tmp1
)
select * from tmp2;
入门的例子:
WITH temp1 AS (
SELECT column1, column2
FROM table1
WHERE column3 = 'value'
),
temp2 AS (
SELECT column4, column5
FROM table2
WHERE column6 = 'value'
)
SELECT temp1.column1, temp2.column4
FROM temp1
JOIN temp2
ON temp1.column2 = temp2.column5;
在上面的示例中,我们将大的查询语句分成了两个小的查询语句,分别定义了两个临时表temp1和temp2,然后在最后的查询语句中使用了这两个临时表。
使用WITH…AS…语句可以让查询语句更加清晰易懂,同时也可以提高查询效率,因为每个临时表只需要被计算一次,然后就可以在后面的查询语句中反复使用。
2、时间函数
Hive SQL中有许多日期和时间函数,可以用于处理日期和时间类型的数据。以下是一些常用的日期和时间函数:
-
YEAR(date):返回日期中的年份。
-
MONTH(date):返回日期中的月份。
-
DAY(date):返回日期中的日。
-
HOUR(timestamp):返回时间戳中的小时。
-
MINUTE(timestamp):返回时间戳中的分钟。
-
SECOND(timestamp):返回时间戳中的秒。
-
DATE_FORMAT(date, format):将日期格式化为指定的格式。
-
FROM_UNIXTIME(unix_timestamp, format):将Unix时间戳转换为日期格式。
-
TO_DATE(date):将日期时间戳转换为日期。
-
UNIX_TIMESTAMP([date, format]):将日期转换为Unix时间戳。
-
CURRENT_DATE():返回当前日期。
-
CURRENT_TIMESTAMP():返回当前时间戳。
以下是一些示例:
-- 返回当前日期
SELECT CURRENT_DATE();
-- 返回当前时间戳
SELECT CURRENT_TIMESTAMP();
-- 返回日期中的年份
SELECT YEAR('2022-01-01');
-- 返回日期中的月份
SELECT MONTH('2022-01-01');
-- 返回日期中的日
SELECT DAY('2022-01-01');
-- 返回时间戳中的小时
SELECT HOUR('2022-01-01 12:34:56');
-- 返回时间戳中的分钟
SELECT MINUTE('2022-01-01 12:34:56');
-- 返回时间戳中的秒
SELECT SECOND('2022-01-01 12:34:56');
-- 将日期格式化为指定的格式
SELECT DATE_FORMAT('2022-01-01', 'yyyy-MM-dd');
-- 将Unix时间戳转换为日期格式
SELECT FROM_UNIXTIME(1641026400, 'yyyy-MM-dd HH:mm:ss');
-- 将日期时间戳转换为日期
SELECT TO_DATE('2022-01-01 12:34:56');
-- 将日期转换为Unix时间戳
SELECT UNIX_TIMESTAMP('2022-01-01 12:34:56');
这些函数可以帮助我们更方便地处理日期和时间类型的数据。文章来源:https://www.toymoban.com/news/detail-794843.html
参考资料:1, 2文章来源地址https://www.toymoban.com/news/detail-794843.html
到了这里,关于【数据开发】HiveSQL 临时表&分步执行(with, as )与时间函数(时间戳unix_timestamp)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!