Teradata中关联Z检验结果至z_base表并分组执行Z检验求助
Teradata Z检验结果关联原表及分组执行方案
1. 将Z检验结果关联至z_base表
TD_ZTest返回的是全表级别的Z检验汇总结果(如Z统计量、p值等),若要将该结果绑定到原表的每一行数据,可通过CTE+交叉连接实现:
WITH z_test_summary AS ( SELECT * FROM TD_ZTest ( ON z_base AS InputTable USING FirstSampleColumn ('FALLOW_RR') SecondSampleColumn ('NONFALLOW_RR') AlternativeHypothesis ('two-tailed') ) AS dt ) -- 交叉连接将全表检验结果与原表每一行关联 SELECT base.*, zts.* FROM z_base base CROSS JOIN z_test_summary zts;
2. 按指定列分组执行Z检验并关联原表
Teradata的TD_ZTest支持PARTITION BY子句,可对指定分组列的每个组单独执行Z检验,再通过分组键将检验结果与原表关联:
示例代码(假设分组列为region_code)
WITH grouped_z_test_results AS ( SELECT * FROM TD_ZTest ( ON z_base AS InputTable PARTITION BY region_code -- 替换为实际分组列名 USING FirstSampleColumn ('FALLOW_RR') SecondSampleColumn ('NONFALLOW_RR') AlternativeHypothesis ('two-tailed') ) AS dt ) -- 按分组键关联原表,每个分组的明细行对应本组的检验结果 SELECT base.*, gztr.* FROM z_base base INNER JOIN grouped_z_test_results gztr ON base.region_code = gztr.region_code;
仅获取分组检验汇总结果
若不需要原表明细,直接查询分组后的检验结果即可:
SELECT * FROM TD_ZTest ( ON z_base AS InputTable PARTITION BY region_code USING FirstSampleColumn ('FALLOW_RR') SecondSampleColumn ('NONFALLOW_RR') AlternativeHypothesis ('two-tailed') ) AS dt;
内容的提问来源于stack exchange,提问作者RGrant
相关产品推荐
相关产品推荐

