[英]How to get closest SUMMED mySQL value to an existing value?
MySQL數據庫中的兩個表...
假設我的基准玩家獲得了83分(即“現有價值”)。
我想從數據庫中找到最接近總積分83的ONE播放器。
注意:此現有問題類似,但不涉及求和: 使用MySQL查詢選擇最接近的數值
所以這種通用方法會起作用...
select points,
abs(points - 83) as distance_from_test
from stats
order by distance_from_test
limit 1
但是我的問題是,同一年每個球員都有多個“積分”條目。 所以我想首先求和每個球員的所有總分,然后找到最接近的總分83。這是行不通的,但這基本上是我想要做的...
select SUM(points) as totalpoints,
abs(totalpoints - 83) as distance_from_test
from stats
order by distance_from_test
limit 1
當我嘗試獲取“解析錯誤:語法錯誤,意外錯誤”(T_ENCAPSED_AND_WHITESPACE),期望標識符(T_STRING)或變量(T_VARIABLE)或數字(T_NUM_STRING)時,我假設您可能無法執行此類操作與Abs數學函數一起求和。 誰能確認/否認這一點,並指出我的明智方向?
謝謝!
您需要使用GROUP BY player
並且必須使用計算方式而不是別名:
select player,
SUM(points) as totalpoints,
abs(SUM(points) - 83) as distance_from_test
from stats
GROUP BY player
order by distance_from_test
limit 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.