これらの値を持つBirthdateフィールドがあります。
28 Juillet 1982 (I want this one to be excluded)
09/16/1981 (This one will be used)
(empty, should be excluded)
03/19/1953 (This one will be used)
mm / dd/yyyyの日付の平均年齢を取得したい。今のところ私のクエリは次のとおりです。
SELECT AVG(NULLIF(YEAR(NOW())-YEAR(Birthdate), 0)) AS AvgAge FROM `User`
私も試しました:
SELECT AVG( YEAR(NOW())-YEAR(Birthdate) ) AS AvgAge FROM `User`
しかし、結果は常に同じです:NULL
100%数値であるすべてのid_userには、正しいmm / dd / yyyyの誕生日があるため、次のことも試しました。
SELECT AVG(CASE WHEN id_user >=0 THEN YEAR( NOW( ) ) - YEAR( Birthdate ) ELSE NULL END ) AS AvgAge FROM `User`
そしてそれ:
SELECT AVG(CASE WHEN CEIL(id_user) = id_user THEN YEAR( NOW( ) ) - YEAR( Birthdate ) ELSE NULL END ) AS AvgAge FROM `User`
まだNULL ..。
なぜそうなるのか分かりますか?
たぶん私の単純なエラーですが、私はそれを理解することはできません。
ありがとう !