2011-11-20 2 views
0

여기에 내 코드가있다.하지만 그 일은 대부분 그렇지만 SQL statemnt를 사용하여 말한 것처럼 그룹화하지는 않는다. 또한 나는 그 자체가 숫자가되는 커스텀 칼럼을 어떻게 만들 수 있을지 궁금해서 맨 위가 '1'이고 거기에서부터 아래로 번호가 매겨졌다. 여기 이 코드를 변경하여 데이터 그룹을 올바르게 만들려면 어떻게해야합니까?

btnLeaderBoardUpdate.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      String sql3 ="Select Name, Kills from honscores group by Name, Kills order by Kills DESC"; 
      ResultSet rs; 
      try { 
       st = conn.prepareStatement(sql3); 
       rs = st.executeQuery(); 
       table_2.setModel(DbUtils.resultSetToTableModel(rs)); 

      } catch(Exception e) { 
       JOptionPane.showMessageDialog(null, e); 
      } 

     } 
    }); 

는 출력 :(내가 아래를 참조 현재이라는 순위 전에 열을 추가하고 싶은 첫 번째 문제의 경우) 1에서 그것을

Name   Kills 

Raknath  20 

AceFire6  15 

AceFire6  12 

AceFire6  10 

Raknath  9 

Q22   7 

Q22   5 

답변

2

을 수 있습니다. 이 문장 대신

짧은 대답
사용 :

Select Name, sum(Kills) from honscores group by Name order by Kills DESC 

긴 대답
당신이 명에 의해 그룹화 할 만 이름으로 그 결과를 집계하고 싶지 않아요.

가정하면이 데이터가 :

AceFire6 2 
AceFire6 2 
AceFire6 1 
AceFire6 3 
Raknath 1 
Raknath 1 

를하고 문을 사용하여 데이터베이스 것 그룹 1kills 값이 AceFire6에 대한 2kills 값이 AceFire6에 대한 모든 값, 모든 값, 등등을 선택하고 살인의 양을 선택하십시오.

그래서 결국,이 결과를 얻을 것이다 :

상관없이 사람이 당 있었다 얼마나 많은이 위로 명을 요약하지 않는 것입니다 당신이 원하는
AceFire6 3 
AceFire6 2 
AceFire6 1 
Raknath 1 

- I 가정 - 게임.

두 번째 문제 (행 수)에 대해서는 this 다른 질문의 대답을 참조하십시오.

편집 :
좋아는 이런 일이 (, 나는 문을 테스트하지 않았다 아무 보증) 작동합니다 :

SELECT @rn:[email protected]+1 AS rank, Name, kills 
FROM (
    Select Name, sum(Kills) as kills from honscores group by Name order by Kills DESC 
) t1, (SELECT @rn:=0) t2; 

해피 FPS는 - 보내고 ... :)

+0

감사합니다. 나는 이것을 시도 할 것입니다. – AceFire6

+0

이것은 제가 원했던대로 정확히 작동했습니다 : D 대단히 감사합니다! – AceFire6

+0

아무런 문제없이 도움이 될 수있어서 기뻤습니다. :) – LeChe

0

시도 이 :

// first query 
SET @ranked = 0; 
// second query 
SELECT @ranked:[email protected]+1 ranked, name, kills FROM honscores 
GROUP BY name, kills 
ORDER BY ranked ASC; 

그리고 당신이 SUM(kills)을 사용할 수 있습니다 saied로 @LeChe 필드 목록을 사용하여 각 이름의 총 킬을 얻습니다.

SELECT @ranked:[email protected]+1 ranked, 
     name, 
     SUM(kills) kills FROM honscores, (SELECT @ranked:=0) t2 
GROUP BY name 
ORDER BY ranked ASC; 
+0

나는 그의 코드에서 실제'SELECT' 전에'SET'에 문제가있을 것이라고 생각합니다. 내 생각에 그가 한 문장을 원한다고 생각합니다. :) – LeChe

+0

마지막 코드 섹션을 편집하여 단 하나의 SQL 쿼리 만 남았습니다. – Cyclonecode

관련 문제