首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式在presto sql中创建存储箱

以编程方式在presto sql中创建存储箱
EN

Stack Overflow用户
提问于 2019-06-14 05:10:33
回答 2查看 2.8K关注 0票数 3

我对Presto SQL语法是个新手,我想知道是否有一个函数可以将行放入某个范围内的n箱中。

例如,我有一个表,其中包含1m个不同的整数,范围从1到100。如何在1到100之间创建20个bin ( 1-5,6-10,11-15...等)而不使用20个独立的CASE WHEN语句?有没有标准的SQL函数可以执行入库功能?

如有任何建议,我们将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-14 05:41:20

您可以使用标准的SQL函数width_bucket。例如:

代码语言:javascript
复制
WITH data(value) AS (
    SELECT rand(100)+1 FROM UNNEST(sequence(1,10000))
) 
SELECT value, width_bucket(value, 1, 101, 20) bucket
FROM data

产生:

代码语言:javascript
复制
 value | bucket
-------+--------
   100 |     20
    98 |     20
    38 |      8
    42 |      9
    67 |     14
    74 |     15
     6 |      2
    ...
票数 9
EN

Stack Overflow用户

发布于 2019-06-14 05:27:57

你可以只使用整数除法:

代码语言:javascript
复制
select (intcol - 1) / 5 as bin

Presto做整数除法,所以你不必担心余数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56588602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档