0

PHP で結果が得られませんが、クエリが phpMyAdmin で複数の行を返していることがわかります。私にとって奇妙に見えるのは、多くの行が表示されている場合でも、phpMyAdmin で「行 0-0 を表示しています」と表示されることです。私の主な必要性は、PHP の各行のデータを取得することです。

テーブル 'metrics' と 'hands' でポーカー データを扱っています。

指標には、ニックネームごとに 1 つの行があり、関連する 3 つの列があります。例...ニックネーム、AggPct、numHands

john, 0.3276, 160
mike, 0.4752, 200
saul, 0.4781, 100

hands には、ポーカー ハンドごとに 1 つの行があり、関連する 2 つの列があります。例...相手のニックネーム、netSmallBets

john, 7
john, 4
john, 9
mike, 8
mike, 2
saul, 20

ハンドとメトリクスから作成された新しい中間テーブルを次のようにしたい: ニックネーム、netSmallBets、AggPct、numHands

john, 20, 33, 160
mike, 10, 48, 200
saul, 20, 48, 100

次に、最終テーブル (必要な最終結果) を次のようにします。

ev, numHands, AggPct
0.125, 160, 33
0.1, 300, 48

...ここで、「ev」は、同じ AggPct のグループの netSmallBets の合計を、そのグループの numHands の合計で割ったものです。つまり、mike と saul (10+20)/(200+100) = 0.1、そして john は自分のグループに属しています 20/160 = 0.125

私が持っているクエリはこれです:

SELECT 
SUM(h.netSmallBets)/SUM(m.numHands) ev, 
SUM(m.numHands) numHands, 
m.AggPct 
FROM 
(SELECT nickname, ROUND(100*AggPct) AggPct, numHands FROM metrics) m 
LEFT OUTER JOIN 
(SELECT opponentNickname, SUM(netSmallBets) netSmallBets FROM hands GROUP BY opponentNickname) h 
ON m.nickname=h.opponentNickname 
GROUP BY m.AggPct
ORDER BY m.AggPct ASC

私のphpドキュメントが行を返さないことを除いて、うまくいくようです(行を取得するwhileループにカウンターを入れましたが、ヒットすることはありません)。phpMyAdmin SQLプロンプトでまったく同じクエリを実行すると、「Showing rows 0 - 0 (1 total ...)」と表示されますが、次のような結果が表示されます...

ev, numHands, AggPct
0.60810810810811, 74, 9
1.6666666666667, 9, 17
1.6666666666667, 6, 19
2.8333333333333, 6, 20
0.74213836477987, 159, 21
-0.37777777777778, 45, 22

PHP で各行を個別に後処理できるようにする必要があります。これを行うことができるように助けてくれてありがとう、私はそれを大いに感謝しています.

4

0 に答える 0