2009-12-16 5 views
0

내가 가지고있는 다음과 같은 데이터가있는 테이블 :SQL 집계 함수가 발행

id status date part_no part_name 

1 high 1/2/09 55  screw; 
1 medium 1/2/09 55  screw; 
2 high 2/2/09 32  plug; 
3 low  4/8/09 59  bolt; 
4 medium 5/6/09 48  tie; 
4 low  5/6/09 48  tie; 

내가 나에게 ID 번호 당 한 행을 제공하는 쿼리를 작성하려면 내가 모든 필드를 표시 할 수 있도록하려면를 그 결과 예를 들어 내 쿼리의 결과가 있어야한다 : 당신이 줄 수있는 모든 도움에 미리

1 medium 1/2/09 55 screw; 
2 high 2/2/09 32 plug; 
3 low  4/8/09 59 bolt; 
4 low  5/6/09 48 tie; 

감사합니다.

+0

ID 당 하나의 DISTINCT 행이 있거나 SUM/AVG/MIN/MAX를 찾으려고합니까? –

+0

당신이 요청한 결과 테이블을 얻으려면 일부 열을 무시할 것입니다. 즉, date & part_no – Dostee

+0

id 당 하나의 고유 한 행이 필요합니다. – jen

답변

1
SELECT 
    id, 
    MIN(status), 
    MIN(date_part), 
    part_name 
FROM <table> 
GROUP BY 
    id, 
    part_name 
+0

상태 열에서 min()을 low, medium, high와 같은 varchar 값과 함께 사용할 수 있습니까? – Dostee

+0

나는 이것을 질문자의 관점에서보고 있었다. 순서가 중요하다면 다른 수단이 필요할 것입니다. (@OMG Ponies가 스레드를 시작했습니다.) –

1
SELECT id, 
      MIN(status), 
      date, 
      part_no, 
      part_name 
    FROM table 
GROUP BY id, date, part_no, part_name 

은 당신이려고하고 있지만, 합병증은 그것이 텍스트/문자로 MIN 기능을 적용하는 방법에 대한 데시벨에 따라 달라집니다 있도록 문자열을 저장하고 있다는 무엇 ..is. 정규화 된 설정에서 상태는 별도의 코드 테이블이되며 키는 MIN 기능으로 더 잘 작동하는 ID가 될 수 있습니다.

+0

min() – Dostee

+0

이 데이터베이스는 정규화 된 것이므로 사용자가 비즈니스 규칙과 일치하지 않는 정보를 입력 할 수 있습니다. 사용자는 같은 날짜에 상태를 다운 그레이드 할 수 있으므로 날짜가 같지만 날짜가 같은 레코드에는 작동하지 않는 max (date)를 사용합니다 – jen