You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两个SQL查询实现公司特征的标准化计算?

合并SQL查询实现标准化特征计算

需求

将两个独立SQL查询合并为一个:

  1. 先计算company_feature_test表中F1列的均值(AVG)和标准差(STDDEV)
  2. 利用上述统计值,结合company表的in_ref_set与size字段,对company_feature_test表每行数据计算标准化后的feature_1值

合并后的SQL语句

SELECT
    DATA.company_id,
    (
        CASE
            WHEN DATA.in_ref_set = 0 AND DATA.size = 'SMALL'
            THEN 1 * ((LN(DATA.F1 + 1) - stats.F1_mean) / stats.F1_std_dev) * 1
            WHEN DATA.in_ref_set = 0 AND DATA.size = 'MEDIUM'
            THEN 2 * ((LN(DATA.F1 + 1) - stats.F1_mean) / stats.F1_std_dev) * 2
            WHEN DATA.in_ref_set = 0 AND DATA.size = 'LARGE'
            THEN 3 * ((LN(DATA.F1 + 1) - stats.F1_mean) / stats.F1_std_dev) * 3
            WHEN DATA.in_ref_set = 0 AND DATA.size = 'VERY_LARGE'
            THEN 4 * ((LN(DATA.F1 + 1) - stats.F1_mean) / stats.F1_std_dev) * 4
            ELSE 5 * ((LN(DATA.F1 + 1) - stats.F1_mean) / stats.F1_std_dev)
        END
    ) AS feature_1
FROM (
    SELECT 
        cft.company_id,
        cft.F1,
        company.in_ref_set,
        company.size
    FROM company_feature_test cft
    JOIN company ON company.id = cft.company_id
) AS DATA
CROSS JOIN (
    SELECT 
        AVG(F1) AS F1_mean, 
        STDDEV(F1) AS F1_std_dev
    FROM company_feature_test
) AS stats
GROUP BY DATA.company_id, stats.F1_mean, stats.F1_std_dev;

表结构说明

company表

idin_ref_setsize
10SMALL
21LARGE

company_feature_test表

company_idF1F2
1510
21520

预期输出

company_idfeature_1
1-1.66
2-1.44

内容的提问来源于stack exchange,提问作者user19479943

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:01:45