首页 > 解决方案 > 如何在其他列中选择具有最大平均值的列

问题描述

如果我有一张像

在此处输入图像描述

我想在V1,V2,V3列中找到平均值最小的列,在这种情况下是V1,我应该在SQL中做什么?

标签: sqlsql-server

解决方案


如果您想要所有三列中的最低平均值,请使用以下脚本 -

SELECT 
CASE 
    WHEN AVG(v1) < AVG(v2) AND AVG(v1) < AVG(v3) THEN AVG(v1)
    WHEN AVG(v2) < AVG(v1) AND AVG(v2) < AVG(v3) THEN AVG(v2)
    ELSE AVG(v3)
END
FROM Your_Table

但是,如果您希望列名作为包含最低平均值的输出,则可以使用以下脚本-

SELECT   
CASE 
    WHEN AVG(v1) < AVG(v2) AND AVG(v1) < AVG(v3) THEN 'V1'
    WHEN AVG(v2) < AVG(v1) AND AVG(v2) < AVG(v3) THEN 'V2'
    ELSE 'V3'
END
FROM Your_Table

推荐阅读