0

複数の AVG 計算の追加を検索したところ、いくつかのエントリが見つかりましたが、別のテーブルに参加する必要があり、その例はほとんどありません。

私が見つけることができる最も近い答えはこれ ですが、日付と結合なしを扱います

ここに私のテーブルがあります:

指標:

StandardScore             IndicatorID      NID    DID
0.033333                  7                1      1
0.907723                  9                1      1
0.574739                  26               1      1
0.917391                  21               1      1
.....

指数指標:

IndexID                   IndicatorID
1                         7
1                         26
2                         21
3                         7
4                         9
4                         21
4                         7
5                         9
.......

私の目標は、NID/DID (インジケーター) の組み合わせに関連する各 IndexID (インデックスインジケーター) の平均を取得することです

単一の値を取得するクエリは次のようになります

SELECT AVG(StandardScore) FROM `indicators` INNER JOIN indexindicators ON indicators.IndicatorId=indexindicators.IndicatorId WHERE nid=1 AND did=1 AND indexindicators.IndexId=1

最終的には 6 つの (indexID) 平均があり、それを * 100 で丸める必要があります (PHP でその部分を行う必要がありますか?)

これはとても単純なクエリのように思えますが、私はそれについて頭を悩ませているようには見えません。

よろしくお願いします。

4

1 に答える 1

1
SELECT nid, did, indexid, 100.0 * AVG(StandardScore) 
    FROM 'indicators'
    INNER JOIN 'indexindicators'
      ON indicators.IndicatorId=indexindicators.IndicatorId 
group by nid, did, indexid
于 2012-07-25T07:58:17.307 に答える