Select 来自直线上的值列表
Select from list of values on beeline
我使用 beeline,它是一个基于 SQLLine 的 JDBC 客户端,用于 运行 Hive 查询。
我想从值列表中 select,例如:
SELECT DISTINCT * FROM (a,b,b,c,d,..z)
可以吗?
SELECT DISTINCT *
FROM (
SELECT 12
UNION SELECT 23
UNION SELECT 34
UNION SELECT 12
UNION SELECT 23
) AS t1;
PS: 也参考非常相关的问题 How can I select from list of values in SQL Server
你也可以使用stack
,它比UNION快得多:
hive> select id from
> (
> select stack(5, --the number of elements
> 10 ,
> 20 ,
> 30 ,
> 40 ,
> 50
> ) as (id)
> )s;
OK
10
20
30
40
50
Time taken: 4.88 seconds, Fetched: 5 row(s)
您可以尝试 split
和 explode
SELECT DISTINCT * FROM
(
select explode( split('a,b,b,c,d,e,f' ,',')) c
) as t
ORDER BY c
我使用 beeline,它是一个基于 SQLLine 的 JDBC 客户端,用于 运行 Hive 查询。 我想从值列表中 select,例如:
SELECT DISTINCT * FROM (a,b,b,c,d,..z)
可以吗?
SELECT DISTINCT *
FROM (
SELECT 12
UNION SELECT 23
UNION SELECT 34
UNION SELECT 12
UNION SELECT 23
) AS t1;
PS: 也参考非常相关的问题 How can I select from list of values in SQL Server
你也可以使用stack
,它比UNION快得多:
hive> select id from
> (
> select stack(5, --the number of elements
> 10 ,
> 20 ,
> 30 ,
> 40 ,
> 50
> ) as (id)
> )s;
OK
10
20
30
40
50
Time taken: 4.88 seconds, Fetched: 5 row(s)
您可以尝试 split
和 explode
SELECT DISTINCT * FROM
(
select explode( split('a,b,b,c,d,e,f' ,',')) c
) as t
ORDER BY c