我的第一个查询返回一周的平均值:
SELECT POSITION, PLAYER, SUM( POINTS ) / COUNT( DISTINCT YEAR, WEEK ) AS 'avg'
FROM SCHEDULE WHERE WEEK = 1 GROUP BY PLAYER HAVING COUNT( DISTINCT YEAR, WEEK ) >2
ORDER BY avg DESC
我的第二个查询返回总体平均值:
SELECT POSITION, PLAYER, SUM( POINTS ) / COUNT( DISTINCT YEAR, WEEK ) AS 'avg'
FROM SCHEDULE GROUP BY PLAYER HAVING COUNT( DISTINCT YEAR, WEEK ) >2
ORDER BY avg DESC
我希望从查询 2 中减去查询 1 并按降序显示结果。
最佳答案
SELECT
WA.POSITION,
WA.PLAYER,
WA.avg as 'wk_avg',
OA.avg as 'overall_avg',
WA.avg - OA.avg as 'diff'
FROM
(SELECT POSITION, PLAYER, SUM( POINTS ) / COUNT( DISTINCT YEAR, WEEK ) AS 'avg'
FROM SCHEDULE WHERE WEEK = 1 GROUP BY PLAYER HAVING COUNT( DISTINCT YEAR, WEEK ) >2
) WA
INNER JOIN
(SELECT POSITION, PLAYER,SUM( POINTS ) / COUNT( DISTINCT YEAR, WEEK ) AS 'avg'
FROM SCHEDULE GROUP BY PLAYER HAVING COUNT( DISTINCT YEAR, WEEK ) >2
) OA
ON WA.POSITION = OA.POSITION and WA.PLAYER = OA.PLAYER
ORDER BY WA.avg - OA.avg DESC
关于php - 合并两个 MySQL 查询并将结果相减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25553678/