例として、各親の男性と女性の平均スコアを計算しようとしているとしましょう。
サンプル データは次のようになります。
parentID childID sex score
------------------------------------
1 21 m 17
1 23 f 12
2 33 f 55
2 55 m 22
3 67 m 26
3 78 f 29
3 93 m 31
これは私が望む結果です:
parentID offspring m f avg-m avg-f avg-both
----------------------------------------------------
1 2 1 1 17 12 14.5
2 2 1 1 22 55 38.5
3 3 2 1 28.5 29 28.67
以下のクエリを使用すると、男性と女性の両方の平均を見つけることができますが、男性または女性の平均を取得する方法がわかりません
SELECT parentID, COUNT( childID ) AS offspring, SUM( IF( sex = 'm', 1, 0 ) ) AS m, SUM( IF( sex = 'f', 1, 0 ) ) AS f, max(score) as avg-both
FROM sexb_1
WHERE avg-both > 11
GROUP BY parentID
クエリでこのようなことを試しましたが、エラーが返されます
AVG(IF(sex = 'm', max(score),0)) as avg-m