2013-02-13 3 views
0

여기이 질문의 맨 아래에있는 명령에서 발생하는 문제의 테이블의 컬럼 B에서 같은 값을 가진 컬럼 A의 최대 값을 선택MySQL은

+--------------+-----------------+ 
| usr_postcode | pdp_point_total | 
+--------------+-----------------+ 
| MS2 8LA  |    160 | 
| MS2 8LA  |    140 | 
| MS2 8LA  |    110 | 
| MS2 8LA  |    100 | 
| MS2 8LA  |    90 | 
| MS2 8LA  |    80 | 
| MS2 8LA  |    50 | 
| MS2 8LA  |    30 | 
| WN4 9NV  |    25 | 
| MS2 8LA  |    20 | 
| SL6 1SR  |    10 | 
| SL1 4DX  |    10 | 
+--------------+-----------------+ 

난에서 가장 큰 값을 찾으려면

이 내 명령입니다 순간 있도록
------------- 
MS2 8LA | 160 
WN4 9NV | 25 
SL6 1SR | 10 
SL1 4DX | 10 
------------- 

두 열

다른 테이블에서있다 : 열 한 각 값에 대한 두 번째 열, 그래서 출력은 다음과 같을 것 0

답변

1

GROUP BY는 데 도움이 될 것입니다

SELECT users.usr_postcode, MAX(point_date_pairs.pdp_point_total) 
FROM users 
INNER JOIN point_date_pairs ON users.usr_id_pk = point_date_pairs.usr_id_fk 
GROUP BY users.usr_postcode ASC 
+0

예, 즉 완벽하게 작동합니다, 감사합니다! MAX() 함수가 없으면 첫 번째로 일치하는 pdp_point_total 레코드를 찾고 표시합니까? – Odyssey

+0

어떤 동작이 있는지 잘 모르겠지만 행의 순서가 변경 될 수 있기 때문에이 동작에 의존하지 않습니다. by group을 사용하면 항상 해당 집계 함수를 사용해야합니다. http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html – Nils