首先,我會提醒大家,我是MySQL的新手。另外我還沒有測試下面的示例查詢,所以它們可能不完美。MySQL - 獲取行和行的平均值
無論如何,我有一個項目表,每個項目都有一個名稱,一個類別和一個分數。每12小時將頂級項目拿走,使用然後移除。
到目前爲止,我只是抓住了頂部的項目與
SELECT * FROM items_table ORDER BY score DESC LIMIT 1
與此唯一的問題是,有些類別的偏見和具有普遍較高的分數。我想通過將得分除以平均得分來排序來解決這個問題,而不是僅僅通過得分來排序。類似於
ORDER BY score/(GREATEST(5,averageScore))
我正在嘗試找出找到averageScore的最佳方法。我有一個類另一個表所以很明顯我的averageScore列添加到和運行一個cronjob,讓他們更新和檢索他們像
SELECT * FROM items_table, categories_table WHERE items_table.category = categories_table.category ORDER BY items_table.score/(GREATEST(5,categories_table.averageScore)) DESC LIMIT 1
但這種感覺凌亂。我知道我可以找到使用的東西中的所有均線像
SELECT AVG(score) FROM items_table GROUP BY category
什麼我不知道,如果是有一些方法來檢索均線正好在一個查詢。
感謝,
YM
「我與MySQL新秀的東西」你這是什麼意思新秀? – Imran
@imran:https://www.google.co.uk/search?q=define%3Arookie – eggyal
我已經使用它約3年,但我是自學成才,並且只在大約6個月前瞭解了規範化數據庫。 –