Snowflake 中的 bit_count() 函数

问题描述 投票:0回答:1

如何在 Snowflake 中创建类似于 mySQL 的 bit_count() 函数,用于计算整数中的活动位数?

预期行为:

select bit_count(1);
-- 1
select bit_count(3);
-- 2
select bit_count(4);
-- 1
select bit_count(15);
-- 4
select bit_count(31);
-- 5
select bit_count(32);
-- 1
snowflake-cloud-data-platform
1个回答
0
投票

由于 bit_count() 是 Python >=3.10 中的函数,因此您可以编写 Python UDF:

CREATE OR REPLACE TEMPORARY FUNCTION bit_count(input_int_py INTEGER)
  returns int
  language python
  runtime_version = '3.10'
  handler = 'bit_count_py'
as
$$
def bit_count_py(input_int: int):
  return input_int.bit_count()
$$
;
select bit_count(1), bit_count(15), bit_count(16), bit_count(31), bit_count(36), bit_count(127);
--1,4,1,5,2,7
© www.soinside.com 2019 - 2024. All rights reserved.