簡體   English   中英

如何使SUMMED mySQL值最接近現有值?

[英]How to get closest SUMMED mySQL value to an existing value?

MySQL數據庫中的兩個表...

  • 玩家(playerid,teamid,位置,名字,姓氏)
  • 統計信息(statsid,playerid,積分,年份)

假設我的基准玩家獲得了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM