2013-11-21 1 views
1

계단식 배열에 관한 새로운 내용입니다. 이제 계단식을 사용하여 단어 수를 계산하는 방법을 알고 있습니다. 다음으로 합계 연산을 수행하려고합니다. 예를 들어 다음 입력을 받았습니다.계단식 합계 연산

a b c 1000 
c d e 2000 
a s e 5000 

마지막 입력란을 SUM으로 설정하려고합니다. 해당 필드를 선택하고 COUNT를 입력하면 다음과 같은 출력이 표시됩니다.

1000 1 
2000 1 
5000 1 

내가 원하는 것은 아닙니다! 나는 "시간"이라고이 필드의 이름을 지정할 수 있습니다하지만 난 SUM하는 방법을 모르는

duration 8000 

: 나는 모든 3 개 개의 숫자를 합 그것과 같은 "시간"라고 이름을주고 싶어 그것은 자체적으로 파일에 출력 할 때 핵심 작업 인 "duration"을 앞에 놓습니다.

이것은 내가 노력 코드입니다 :

... // get duration Field 
// determine the word counts 
Pipe pipe = new Pipe("pipe", docPipe); 
pipe = new GroupBy(pipe, new Fields("duration")); 
pipe = new Every(pipe, Fields.ALL, new Count(), Fields.ALL); 

는하지만 나에게 내가 위에서 보여 주었다 잘못된 출력을 제공합니다.

아마 Count를 사용해서는 안되지만 SumBy를 시도해도 여전히 작동하지 않습니다. 누구든지 나를 도울 수 있습니까?

+0

합산 할 때가있을 것입니다. – isnot2bad

+0

지금까지 해보신 것은 무엇입니까? 문제와 관련된 소스 코드를 게시하십시오! – isnot2bad

+0

'파이프','GrouBy','Every','필드'란 무엇입니까? –

답변

1

모든 값에 대한 합계를 원한다면 (예 : 단일 그룹 만 사용하려는 경우) GroupBy의 "fields"매개 변수는 Fields.NONE이어야합니다. 또한 기간 필드를 합산하기 때문에 인수 선택자를 Every으로 설정해야합니다. 다음 코드는 원하는 것을 처리합니다 :

pipe = new GroupBy(pipe, Fields.NONE); 
pipe = new Every(pipe, new Fields("duration"), new Sum(), Fields.ALL);