2011-11-09 4 views
0

의 순위 비교를 위해 하나의 열에서 두 가장 높은 값을 가져 오는 : 나는 많은이 있었다 실현정보 추가하려면 수정 된 차이

을 그래서, "얻을이 가장 높은"또는 SQL 질문에 "두 번째로 높은 얻을"및 게시 응답되는 이 질문이 중복되는 경우 사전에 사과드립니다. 그러나 다른 상황과 조금 다른 것을하고 싶습니다. A에서 B로 전환하는 데 도움이 필요합니다. 나는 MySQL 애호가이기 때문에 대답은 확실합니다. 여러분 중 일부는 분명합니다.

나는 야구 선수 싱글 시즌 통계 행을 잔뜩 가지고있다. 나는 그들의 계절을 가장 높은 가치와 비교하고, 두 번째로 높은 가치를 갖고 싶다. 나는 또한 가장 높은 곳에서 두 번째로 높은 곳을 빼서 두 계절을 비교할 수 있기를 원합니다.

물론 MAX를 사용하면 쉽게 가장 높은 가치를 얻을 수 있지만, 이것은 나 자신과 같은 초보자에게는 훨씬 어렵습니다.


지금까지 도움을 주셔서 감사합니다. 이 관련되도록

나는 관련 테이블 구조를 단순화 :

playerid, Year, Value 

각 플레이어 시즌은 올해로 구분됩니다. 난 내 쿼리에서 반환 원하는

내가 그 정도로 간단하고 분명하다 희망

Player id, 
Year [of Highest Value], 
Value [Highest], 
Year [of Second Highest Value], 
Value [Second-Highest] 

입니다. 어떤 도움을 주셔서 감사합니다. 테이블 구조를 모른 채

+0

테이블 구조를 게시 한 경우 도움이 될 수 있습니다. – AllisonC

+0

일부 코드는 게시 할 수 있습니까? 나는 MAX가 해결책이지만 LIMIT가 문제를 해결할 지 모르겠습니다. –

답변

3

, 당신은 기본적으로 할 수있는 : 당신이 점수를 끌어와 클라이언트에서 뺄 수있는 가장 높은 점수를 가진 두 개의 행을 검색하는 것

SELECT score 
FROM statstable 
WHERE playerID=??? 
ORDER BY score DESC 
LIMIT 2 

.

다른 쿼리에서 사용자의 highest-next_highest 값이 필요한 경우 조금 더 복잡해집니다.