2012-05-02 2 views
3

제목이 너무 구체적이어서 미안합니다. 나는 설명하려고 애쓸 것이다 : 나는 SQL을 처음 사용한다. 나는 일하고 많은 테이블에서 정보를 취하는 9 개의 열을 가진 질의를 작성했습니다. 9 번째 열의 은 기계 유형의 이름이고, 3 번째 숫자는 기계가 한 달 동안 작업 한 시간을 나타내는 값입니다. 각 유형의 머신에 대해 가질 수있는 열 10 번째를 추가해야합니다.이 유형의 열은 최대 3 번째입니다. 에는 1,2,3,4,5 시간 (세 번째 열)의 XR 유형 (테이블에 5 행)의 5 대의 시스템이 있다고 가정 할 수 있습니다. 10 번째 열에는 기계 유형이 XR 인 모든 행에 값 5가 필요합니다. 이는이 유형의 기계에 대한 최대 값입니다.SQL에서 테이블 내부 필드에 집계하는 방법

어떻게하면됩니까?

도움이 될 것입니다! MySQL에서

SELECT *, MAX(col3) OVER (PARTITION BY col9) 
FROM mytable 

: SQL Server, OraclePostgreSQL에서

+0

사용하는'RDBMS'? – Quassnoi

답변

6

SELECT mt.*, maxcol3 
FROM (
     SELECT col9, MAX(col3) AS maxcol3 
     FROM mytable 
     ) q 
JOIN mytable mt 
ON  mt.col9 = q.col9 
+0

고맙습니다! 그것은 PLSQL, 그것은 (col3) 좋아하지 않아. 대체 할 수있는 아이디어가 있습니까? –

+0

@DanaRoot : 실제 열 이름으로 대체하십시오. 귀하는 귀하의 게시물에 그들을 제공하지 않았습니다. 또한 "싫어합니다"대신 오류 메시지를 복사하여 붙여 넣으십시오. 매우 설명적인 것은 아닙니다. – Quassnoi

+0

그것은 작동합니다! 고 너는 대단히 Quassnoi! 메시지를 복사하지 않으신 것에 대해 사과드립니다. 어쨌든 다시 고맙습니다! –

관련 문제