1

3 つの Wordpress テーブルに基づいていくつかのフィールドを計算する次の SQL ステートメントがあります。私が必要とするのは、以下のステートメントで機能していないSUMandを計算することです。AVG

すべての meta_values '3279' を合計する必要があるのは、meta_key = image. 同じことがAVG式にも当てはまりますmeta_key=odd

どんな助けでも大歓迎です!

SELECT (user_nicename) AS user,
       SELECT SUM(IF('meta_key' = 'image', 'meta_value' = '3279', 1,0)) AS won,
       SELECT SUM(IF('meta_key' = 'image', 'meta_value' = '3280', 1,0)) AS lost,
       COUNT('meta_key'='odd') AS total,
       FORMAT (AVG('meta_key' = 'odd', 'meta_value'),1) AS 'average odd',
       FORMAT (AVG ('meta_key' = 'bet', 'meta_value'),1) AS 'average bet',
       SUM('meta_key' = 'roi', 'meta_value') AS ROI
FROM wp_postmeta pm, wp_posts p
INNER JOIN wp_posts p ON pm.post_id = p.ID 
INNER JOIN wp_users u ON p.post_author = u.ID
WHERE Month(data) = MONTH(CURRENT_DATE)
GROUP BY (user_nicename)
ORDER BY ROI DESC
4

1 に答える 1

1

これを mysql で単純化する方法があるかもしれません。型によっては meta_value をキャストする必要があるかもしれませんが、データのサブセットで平均するには、null を使用して無視します。

AVG(Case When meta_key = 'odd' Then meta_value else Null End)
于 2012-11-06T19:10:49.660 に答える