gpt4 book ai didi

php - 从两个不同的行中选择值

转载 作者:行者123 更新时间:2023-11-29 04:43:17 24 4
gpt4 key购买 nike

我正在处理一个有

的表

session_id : patient_id : efficiency_score

4871 : 32 : 99

4872:32:100

4872:32:50

我选择 efficiency_score 的 PHP 代码如下所示:

while($row = mysql_fetch_assoc($result)){
$efficiency_score[$c][$k] = $row['efficiency_score'];
}
mysql_free_result($result);

这是解释多维数组的 2 个 for 循环的内部。

但是,该代码选择了表中的每一行,我只想要最大值

efficiency_score

每个

session_id

如何找到最大的 efficiency_score 并且每个 session_id 只有 1 个 efficiency_score?

最佳答案

这很简单。使用聚合查询。

SELECT session_id, MAX(efficiency_score) AS efficiency_score
FROM your_table
GROUP BY session_id

这是 SQL 出色而高效的一部分。如果你在 (session_id, efficiency_score) 上创建一个复合索引,这个查询确实会非常快,因为 MySQL 可以使用 loose index scan 来满足它。 .

您还可以使用聚合函数 MIN()AVG()STDDEV()COUNT(*) 等。

如果您需要汇总表的一个子集,您可以指定一个 WHERE 子句,如下所示:

SELECT session_id, MAX(efficiency_score) AS efficiency_score
FROM your_table
WHERE session_id >= 1000 /* or whatever filter criteria */
GROUP BY session_id

如果您想过滤聚合结果,您可以指定一个 HAVING 子句,如下所示:

SELECT session_id, MAX(efficiency_score) AS efficiency_score
FROM your_table
GROUP BY session_id
HAVING MAX(efficiency_score) <= 80 /*or whatever filter criterion*/

关于php - 从两个不同的行中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049138/

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