Snowflake cloud data platform 如何准确地使用雪花比率报告?
我对雪花函数比率报告有一个问题,它是四舍五入的。似乎存在默认舍入行为,这导致总和不同于1 你将如何解决这个问题 干杯Snowflake cloud data platform 如何准确地使用雪花比率报告?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我对雪花函数比率报告有一个问题,它是四舍五入的。似乎存在默认舍入行为,这导致总和不同于1 你将如何解决这个问题 干杯 Joe从技术上讲,这里发生的一切都不是“错误的”——正如您所指出的,这是一个取整问题。每个比率报告结果都是正确的,值之和也是正确的 解决这一问题的最佳方法是通过将输入强制转换为number而不是INTEGER来强制比率报告输出更精确的数字。在我的测试中,以下各项效果良好: -- Create the table for testing CREATE TABLE R2R_TEST
Joe从技术上讲,这里发生的一切都不是“错误的”——正如您所指出的,这是一个取整问题。每个比率报告结果都是正确的,值之和也是正确的 解决这一问题的最佳方法是通过将输入强制转换为
number
而不是INTEGER
来强制比率报告输出更精确的数字。在我的测试中,以下各项效果良好:
-- Create the table for testing
CREATE TABLE R2R_TEST (activity_count integer);
-- Insert the values from the example screenshot.
INSERT INTO R2R_TEST VALUES (210),(11754),(3660),(66);
-- Create the test RATIO_TO_REPORT query with the cast to NUMBER
SELECT RATIO_TO_REPORT(activity_count::number(32,8)) OVER (ORDER BY activity_count) r2r FROM R2R_TEST;
-- Check our work.
with test as (SELECT RATIO_TO_REPORT(activity_count::number(32,8)) OVER (ORDER BY activity_count) r2r FROM R2R_TEST)
SELECT SUM(r2r) FROM test; -- 1.0000000000[...]
您可以看到,我所做的只是将
activity\u count
转换为数字
,这给出了未舍入的结果。这里发生的任何事情在技术上都不是“错误的”-正如您所指出的,这是一个舍入问题。每个比率报告结果都是正确的,值之和也是正确的
解决这一问题的最佳方法是通过将输入强制转换为number
而不是INTEGER
来强制比率报告输出更精确的数字。在我的测试中,以下各项效果良好:
-- Create the table for testing
CREATE TABLE R2R_TEST (activity_count integer);
-- Insert the values from the example screenshot.
INSERT INTO R2R_TEST VALUES (210),(11754),(3660),(66);
-- Create the test RATIO_TO_REPORT query with the cast to NUMBER
SELECT RATIO_TO_REPORT(activity_count::number(32,8)) OVER (ORDER BY activity_count) r2r FROM R2R_TEST;
-- Check our work.
with test as (SELECT RATIO_TO_REPORT(activity_count::number(32,8)) OVER (ORDER BY activity_count) r2r FROM R2R_TEST)
SELECT SUM(r2r) FROM test; -- 1.0000000000[...]
您可以看到,我所做的只是将
活动\u count
转换为数字
,这会给出未经排序的结果。这可能值得向Snowflake提供一张支持票,因此他们可以为您查询。这可能值得向Snowflake提供一张支持票,以便他们可以为您查询。