2011-08-21 7 views
1

PHP와 MySQL을 사용하여 내 테이블은 첫 번째 필드 'id', 두 번째 필드 'score'등과 같습니다. ID가 < 인 행에서 점수를 얻고 싶고 모든 점수의 합계를 원합니다. 각 행의 점수에 대한 행 및 백분율. 그것은 SQL 문 외부의 PHP 문으로 계산하는 대신 테이블에서 합계와 백분율을 얻는 다른 방법이 있습니까?PHP에서 데이터베이스의 데이터 합계와 백분율을 계산하는 가장 좋은 방법은 무엇입니까?

"SELECT score FROM Table WHERE id<20"; 

그런 다음 합계와 퍼티를 계산하려면 PHP 문을 사용하십시오.

도와주세요

+0

,해야 모든 점수의 합계는 ID가 20 미만인 레코드에 속하는 점수이거나 테이블의 모든 레코드 일뿐입니다. 또한 모든 점수의 합계와 각 점수의 비율에 대해 두 가지 별도의 쿼리를 실행하는 것에 반대하겠습니까? – user470714

+0

id <20 –

답변

1
SELECT sum(score) FROM Table WHERE id<20 

당신에게 점수의 총합을 줄 것이다.

또 다른 SQL 각 ID에 대한 비율을 당신에게 제공 할 수 있습니다 :

SELECT id, 100.0/:total * score FROM Table WHERE id<20 

Whereaes : 전체는 당신이 첫 번째 문에서받은 총 가치 (내가 PHP에서이 일의 정확한 구문의 확실하지 않다입니다).

당신이 총에 관심이없는 경우에만 비율, 당신은 두 쿼리 결합 할 수 있습니다 :

모든 점수의 합계에서 점수의 비율을 계산하고
SELECT id, 100.0/(SELECT sum(score) FROM Table WHERE id<20) * score FROM Table WHERE id<20 
+0

어 ..이 질문이 아니라면이 대신에 나를 나타내는 다른 이미지를 변경하거나 선택할 수 있습니까? –

1

이 방법이 유용할까요?

SELECT SUM(score) FROM Table WHERE id<20 
+0

모두에게 감사드립니다. –

0

이 데이터베이스까지 이러한 계산을두고하는 것이 좋습니다 :

SELECT SUM(score) FROM Table WHERE id<20 

예를 점수의 합계를 계산합니다.

0

SUM() 기능을 사용하면 어떨까요? 이처럼
:

SELECT SUM(score) FROM Table WHERE id<20 
관련 문제