MySQL平均连接表

标签 mysql sql

我有两个表:

沙龙排名:

+-----------+-----------+-----------+-----------+
| 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/

相关文章:

php - SELECT 查询语法问题

sql - “Syntax error in INSERT INTO statement”错误-什么是错误?

mysql - 合并两个表中的数据 SQL

php - Mysql事务错误信息

php - Laravel groupBy 不工​​作抛出错误语法错误或访问冲突 : 1055

php - 更改 MySQL 数据库的字符集会导致 SELECT 问题吗?

mysql - 对分组子查询求和

sql - 查询以对组中的行进行排名

mysql - 安装多个服务器

mysql - 左连接 缺少表达式。 (位置 25 处 "ON"附近)