php - 仅使用前 3 个值的数组的总和

标签 php mysql database limit

在一位同事的帮助下,我已经能够将 MySQL 查询调用的数组的值加在一起。但是,我的代码是将所有值相加。

$top_1st = mysql_fetch_array(mysql_query("SELECT SUM(1ET)/10 AS top_1st 
FROM scoring_data WHERE Competition='$competition' AND Club='$row[Club]' 
AND Team='$row[Team]' ORDER BY 1ET DESC LIMIT 0, 3"));

echo $top_1st[0] ;

我用过

LIMIT 0, 3 

因为我只想从返回的查询中添加最高的 3 个值,但这似乎不起作用。

如果有一个简单的解决方案,我们深表歉意;新手技能真经受考验!

编辑

@marc-b 的建议(谢谢)让我想到了这个,但是它给出了一个空白的返回。

$top_1st = mysql_fetch_array(mysql_query("
SELECT SUM(1ET)/10
FROM (
SELECT 1ET AS top_1st FROM scoring_data WHERE Competition='$competition' AND
Club='$row[Club]' AND Team='$row[Team]' ORDER BY 1ET DESC LIMIT 0, 3 ) "));
echo $top_1st[0] ;

最佳答案

您需要先获取前 3 个值,然后在另一个查询中求和,例如

SELECT SUM(foo)
FROM (
    SELECT whatever AS foo
    FROM ...
    LIMIT 3
)

必须在内部查询中应用限制。否则,您将总结为一行,无论如何都会落在 3 行限制内。

关于php - 仅使用前 3 个值的数组的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357488/

相关文章:

通过 SSL 连接时 MySQL 客户端连接有延迟

ruby-on-rails - Heroku 上的 'Reset' 和 'Destroy' 数据库与 Postgres 之间的区别?

php - 删除查询正确,但无法删除

php - 根据两个键值按 ASC 顺序对数组进行排序?

PHP查找关联多维数组的最后一个键

php - 将 CSV 处理成带有键列标题的数组

mysql - 如何在 MYSQL 中使用 outfile,同时又允许程序运行两次而不出错?

PHP 将 MYSQL 中的 jpeg 回显到 HTML 页面中

mysql - 计算机关闭或重新启动后,mysql 表丢失或损坏

java - 数据库的 SQLiteConnection 对象被泄露!请修复您的应用程序