私は以下のコードを持っています。可能性のあるタイプミスは3列を選択する必要があります。mysql(PHP経由)で同じことを達成するより効率的な方法がありますか?
SELECT COUNT(B.F_FACTOR) AS RANK, A.F_OPPOSITION, A.F_FACTOR
FROM
(
SELECT
F_OPPOSITION,
IF(SUM(F_RESULT='L',=1,1,0) AS F_NUM,
IF(SUM(F_RESULT IN ('W','D','L'),=1,1,0) AS F_DENOM,
ROUND(SUM(F_NUM/F_DENOM),2) AS F_FACTOR
FROM $table
GROUP BY F_OPPOSITION
) A,
(
SELECT
F_OPPOSITION,
IF(SUM(F_RESULT='L',=1,=1,=0) AS F_NUM,
IF(SUM(F_RESULT IN ('W','D','L'),=1,=1,=0) AS F_DENOM,
ROUND(SUM(F_NUM/F_DENOM),2) AS F_FACTOR
FROM $table
GROUP BY F_OPPOSITION
) B
WHERE A.F_FACTOR <= B.F_FACTOR
OR (A.F_FACTOR=B.F_FACTOR AND A.F_OPPOSITION=B.F_OPPOSITION)
GROUP BY A.F_OPPOSITION, F_FACTOR
ORDER BY A.F_RANK ASC, A.F_FACTOR DESC, A.F_OPPOSITION DESC;
私がおそらく行いますれ、PHPでのスクリーニングに毎晩テーブルを更新してから、これを表示するには、そのテーブルから基本的な選択X、Y、Zを行うためにcronジョブとしてこれを実行することも可能です。
しかし、SQLの観点からもっと学ぶという点では、同じ出力を達成するために、タイピングと処理の両方で、より簡単で簡単です。
ありがとうございました。
はい私は同意します。これは私が取る方法ですが、これは私が望んでいた質問に対する答えではありませんでした。同じ出力を得るために上記のステートメントをすぐに行う方法がありますか? – ChelseaStats