【发布时间】:2021-12-03 19:54:50
【问题描述】:
假设我有某种谨慎的变量,比如说一个字符串,我想知道字符串的每个值出现的比例。在雪花中有推荐的方法吗?
【问题讨论】:
标签: snowflake-cloud-data-platform snowflake-schema
假设我有某种谨慎的变量,比如说一个字符串,我想知道字符串的每个值出现的比例。在雪花中有推荐的方法吗?
【问题讨论】:
标签: snowflake-cloud-data-platform snowflake-schema
我不知道是否有任何特别推荐用于 Snowflake 的方法,但根据我的经验,标准方法是使用窗口函数。例如:
select C_SALUTATION as title, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER()
from "SNOWFLAKE_SAMPLE_DATA"."TPCDS_SF100TCL"
group by C_SALUTATION;
TITLE PROPORTION
Ms. 11.676401
Mr. 16.591405
Miss 11.680596
Sir 16.586719
NULL 3.501119
Mrs. 11.682914
Dr. 28.280846
【讨论】:
Snowflake 支持RATIO_TO_REPORT:
返回组内值与组内值总和的比率
SELECT C_SALUTATION,
RATIO_TO_REPORT(COUNT(*)) OVER() AS ratio
FROM "SNOWFLAKE_SAMPLE_DATA"."TPCDS_SF100TCL".CUSTOMER
GROUP BY C_SALUTATION;
【讨论】: