1
我试图弄清楚如何获取每个销售人员在过去的100条评级中的平均评级(如果他们目前就业),并且他们的平均评级少于3(满分5)。MySQL:查找最后x个记录的每个条目的平均值
我有(未在查询所需留出的信息)下表:
users
id name employed
-----------------------
1 John 1
2 Sue 1
3 Bob 0
...
sales
id users_id
------------------
100 3
101 2
102 3
103 1
...
ratings
sales_id rating
-----------------
100 4
101 5
102 5
103 2
...
当前查询我有搜索一切,曾经返回平均值为所有的订单,但我希望它只抓取最近的100个评级(如果销售人员没有销售那么多项目,则评分更低),但不包括任何不再被雇用或对其最近100个订单的评级大于3的人员。这是当前查询:
SELECT u.name, avg(r.rating) as avg_rating, count(r.rating)
FROM users AS u
JOIN sales AS s ON s.users_id = u.id
JOIN ratings AS r ON r.sales_id = s.id
WHERE u.employed = 1
GROUP BY u.id
HAVING avg_rating <= 3;
任何帮助将是伟大的!谢谢! :D
这正是我需要的,谢谢! – 2014-12-18 07:06:02