SELECT
MNo, X, Y, Z
FROM
Coord C
JOIN Result R ON R.ResultID = C.ResultID
JOIN Member M ON M.MemberID = R.MemberID
WHERE
M.StdID = @stdID
GROUP BY
MNo
我有一个查询女巫给我MNo代表的每个成员的x,y和z坐标。有些会员可以有多行坐标,我想得到那些坐标的平均值(只有那些坐标),比如
MNo x y z 15 10.6 12.3 20.1 16 11.1 17.8 14.0
省略成员1-14和17-只有一行坐标。我怎么能这样做?
答案 0 :(得分:2)
对于问题的第1部分 - 平均,AVG就是您所需要的。
对于问题的第2部分 - 如何过滤掉成员1-14和17-,你需要一个WHERE子句。
对于问题的第3部分 - 如何摆脱只有1行坐标的成员,你需要一个HAVING子句。
将这些结合起来,我们有:
SELECT
MNo, AVG(X) AS X, AVG(Y) AS Y, AVG(Z) AS Z
FROM
Coord C
JOIN Result R ON R.ResultID = C.ResultID
JOIN Member M ON M.MemberID = R.MemberID
WHERE
M.StdID = @stdID
AND M.MNo NOT BETWEEN 1 AND 14
AND M.MNo NOT BETWEEN 17 and 20
GROUP BY
MNo
HAVING
COUNT(1) > 1
注意: