【问题标题】:SQL subquery calculating to maximum valueSQL 子查询计算到最大值
【发布时间】:2015-10-13 09:17:05
【问题描述】:

我有多个子查询,我试图以百分比(最大 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?

【问题讨论】:

  • 不要标记未涉及的产品...您真的在这里同时使用 MySQL 和 MS SQL Server 吗?

标签: mysql sql


【解决方案1】:

使用喜欢

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

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

【讨论】:

    【解决方案2】:

    用例语句与您的选择一起使用。

    例如:

      , ((  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
        ) +
    

    【讨论】:

    • 那不过是一条评论。
    • 也许用 case 表达会更好?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多