sql - 在 presto sql 中创建 bin - 以编程方式
问题描述
我是 Presto SQL 语法的新手,想知道是否存在将行合并到n
特定范围内的 bin 的函数。
例如,我有一张表,其中包含 1m 个不同整数,范围从 1 到 100。我可以做些什么来创建 1 到 100 之间的 20 个 bin(一个 bin 用于 1-5、6-10、11-15 ......等)。 ) 不使用 20 个单独的CASE WHEN
语句?是否有任何标准 SQL 函数可以执行分箱功能?
任何意见,将不胜感激!
解决方案
您可以使用标准的 SQL 函数width_bucket
。例如:
WITH data(value) AS (
SELECT rand(100)+1 FROM UNNEST(sequence(1,10000))
)
SELECT value, width_bucket(value, 1, 101, 20) bucket
FROM data
产生:
value | bucket
-------+--------
100 | 20
98 | 20
38 | 8
42 | 9
67 | 14
74 | 15
6 | 2
...
推荐阅读
- cmake - cmake 和可移植的 nul //dev/null 设备
- node.js - 基本身份验证 - 未为某些请求添加授权标头
- python - 谁想成为百万富翁 pygame - 50:50 小丑
- ruby - Ruby spawn process, capturing STDOUT/STDERR, while behaving as if it were spawned regularly
- apache-kafka - Kafka 主题是否与 zookeeper 相关联,如果 zookeeper 改变,主题会消失
- typescript - 如何为 create-react-app --typescript 禁用 eqeqeq
- php - 如何在 WooCommerce 结帐页面上显示自定义产品字段?
- vba - ms-project vba 中的文档导出失败
- css - 如何在反应中使网格移动响应
- python - Tensorflow:如何将张量与特定索引连接起来