gpt4 book ai didi

php - 如何从不同的列中找出两个最高值?

转载 作者:行者123 更新时间:2023-11-29 02:25:32 24 4
gpt4 key购买 nike

我的student_marks 表中有各种类型的标记,例如Quiz1Quiz2Quiz3First_MonthlySecond_MonthlyThird_monthly

我创建了一个触发器来计算所有标记并将总和添加到 Final_Marks 字段中。

我不希望 Final_marks 字段添加所有列并对它们求和,我只想选择前 2 个 Quiz_Marks 和 Top2 Monthly_Marks 并将它们的总和添加到 FinalMarks 中。

我在网上搜索并找到了从表中选择最高列值的 greatest 关键字,但在这里我不想要单个值,我需要每个 ID 至少有 2 个最高值。

-

触发器[现在正在添加所有列]

BEGIN
SET NEW.FinalMarks = NEW.AssignmentMarks + NEW.QuizMarks
+ NEW.Hourly1 + NEW.Hourly2 + NEW.Hourly3
+ NEW.ProjectMarks,

enter image description here

最佳答案

您有五个值。要获得最佳效果,您可以使用 GREATEST(当然)。要获得第二大值,请执行以下操作: 为每个仅包含四个值的元组查找最大值。当然有五个元组,一个缺少元素 1,一个缺少元素 2,等等。所以你得到所有五个中最大值的四倍和第二大值的一倍。使用最少的东西来获得第二大值(value)。就是这样。

SET NEW.FinalMarks =
GREATEST(new.quizmarks, new.hourly1, new.hourly2, new.hourly3, new.projectmarks)
+
LEAST
(
GREATEST(new.quizmarks, new.hourly1, new.hourly2, new.hourly3),
GREATEST(new.quizmarks, new.hourly1, new.hourly2, new.projectmarks),
GREATEST(new.quizmarks, new.hourly1, new.hourly3, new.projectmarks),
GREATEST(new.quizmarks, new.hourly2, new.hourly3, new.projectmarks),
GREATEST(new.hourly1, new.hourly2, new.hourly3, new.projectmarks),
)

对此进行修改,使其满足您将 Quiz_Marks 和 Monthly_Marks 分开处理的要求。

关于php - 如何从不同的列中找出两个最高值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com