SQL子查询计算到最大值

时间:2015-10-13 09:17:05

标签: mysql sql

我有多个子查询,我试图以百分比形式返回(最多100个),然后在结束时创建总平均值。我遇到的问题是每个子查询返回最多100个。示例查询是......

, ((  SELECT        SUM((eo.value) / 550) * 100

      FROM          users u1
      INNER JOIN    field_user pu1
      ON            pu1.field_target    = u1.personid
) +

因此,如果eo.value超过550,那么我的结果将大于100.我如何将最大值限制为100?

2 个答案:

答案 0 :(得分:1)

使用

SELECT SUM(IF(eo.value > 550, 1, (eo.value) / 550)) * 100 AS percent

所以如果eo.value> 550,它将返回1.因此最终的百分比不会超过100

答案 1 :(得分:0)

使用案例陈述和您的选择。

例如:

  , ((  SELECT        CASE WHEN (SUM((eo.value) / 550) * 100) > 100 THEN 100 ELSE (SUM((eo.value) / 550) * 100) END
     FROM          users u1
     INNER JOIN    field_user pu1
     ON            pu1.field_target    = u1.personid
    ) +