反馈表

-------------------------------
|rating|feedback|feedback_date|
-------------------------------
| 5    | good   | 1452638788  |
| 1    | bad    | 1452638900  |
| 0    | ugly   | 1452750303  |
| 3    | ok     | 1453903030  |
-------------------------------


理想的结果

average_rating | rating | feedback | feedback_date
2.25           |  3     |  ok      | 1453903030


是否可以(在单个查询中)从表中选择一列和某一行的平均值?

例如,我想检索列rating和整个最近行的平均值。

我尝试了以下操作,并且也将ORDER BY方向设置为DSC,但是它们都只给了我average_rating和表中的第一行。

SELECT AVG(f.rating) AS average_rating, f.* FROM feedback f ORDER BY feedback_date ASC

最佳答案

SELECT * FROM feedback NATURAL JOIN (
  SELECT AVG(rating), MAX(feedback_date) feedback_date FROM feedback
) t


sqlfiddle上查看。

关于mysql - 选择列和单个特定行的AVG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38979671/

10-13 07:41