다음과 같은 코드가 있습니다. 가능한 오타가 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