我有两个表:
沙龙排名
:
+-----------+-----------+-----------+-----------+
| salon_id |category_id| user_id | rank |
+-----------+-----------+-----------+-----------+
| 10 | 1 | 999 | 1 |
| 10 | 2 | 999 | 1 |
| 10 | 1 | 888 | 5 |
| 10 | 2 | 888 | 5 |
+-----------+-----------+-----------+-----------+
类别
:
+------+-----------+
| id | name |
+------+-----------+
| 1 | prices |
| 2 | service |
+------+-----------+
我正在尝试有效地获得如下所示的内容:
+-----------+-----------+-----------+
| salon_id |category_id| AVG(rank) |
+-----------+-----------+-----------+
| 10 | 1 | 3 |
| 10 | 2 | 3 |
+-----------+-----------+-----------+
对我来说最有意义的是这样的查询:
SELECT salon_id, category_id, AVG(rank)
FROM salon_ranks
INNER JOIN categories ON category_id = id
GROUP BY salon_id, category_id
但出于某种原因我没有得到平均值,而是得到这个:
+-----------+-----------+-----------+
| salon_id |category_id| AVG(rank) |
+-----------+-----------+-----------+
| 10 | 1 | 1 |
| 10 | 2 | 5 |
+-----------+-----------+-----------+
知道为什么会发生吗?什么可能是正确的查询?
对不起,这是我的错误。我从我的原始表中得到的数据是错误的。 真的很抱歉误导你:(
最佳答案
您的解决方案:
http://www.sqlfiddle.com/#!2/ee5c6/2
SELECT SR.salon_id, SR.category_id, AVG(SR.rank)
FROM salon_ranks SR
INNER JOIN categories C ON SR.category_id = C.id
GROUP BY SR.salon_id, SR.category_id
关于MySQL平均连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890215/