SQL 子查询计算到最大值
Posted
技术标签:
【中文标题】SQL 子查询计算到最大值【英文标题】:SQL subquery calculating to maximum value 【发布时间】: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 吗? 【参考方案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 表达会更好?以上是关于SQL 子查询计算到最大值的主要内容,如果未能解决你的问题,请参考以下文章
SQL语句汇总(三)——聚合函数分组子查询及组合查询 - Darly