0

合計評価クエリを実行しようとしていますが、その一部には $sel = mysql_query("SELECT SUM(col1, col2, col3, col4, col5, col6, col7, col8)/XXXX as total FROM rating WHERE shop_id = $shop_id が必要です");

XXXX が 0 を超える列ごとの行エントリの数を数え、TOTAL を # で割って合計評価を取得する必要があります。

計算式: 合計 / 0 を超える値の数

ありがとう

0 を超えるエントリの数をカウントしようとしています。つまり、1 の shop_id の合計は 35 です。35 を 0 を超えるエントリの数で割ると、5 であり、0 行/列を投票として取らずに合計結果を取得します.

これは、テーブル内のデータに関連する私の目的の出力です。ショップ ID 1 -> 35/7 = 5 ショップ ID 2 -> 42/ = 3 ショップ ID 3 -> 40/8 = 5

ここに画像の説明を入力

4

1 に答える 1

1
SELECT 
SUM(col1, col2, col3, col4, col5, col6, col7, col8)/
SUM(IF(col1 > 0, 1, 0), IF(col2 > 0, 1, 0), ... ) AS total 
FROM ratings 
WHERE shop_id = $shop_id")

...テストしている各列を同じロジックに置き換えます。条件付きでゼロまたは1を出力しているため、合計は基本的にカウントと同じ目的を果たします。

構文について私を引用しないでください-しかし、これはあなたを正しい方向に向けるはずです。

于 2012-05-05T02:00:02.473 に答える