2017-02-17 4 views
0

다음 문제로 도와주세요.여러 행이 연결됩니다.

| Name | Size | DateTime | 
|--------|--------|--------------| 
| Adi | 120 | 2017-01-26 | 
|--------|--------|--------------| 
| Mark | 225 | 2017-01-11 | 
|--------|--------|--------------| 
| Adi | 150 | 2017-01-28 | 
|--------|--------|--------------| 
| Adi | 115 | 2017-02-01 | 
|--------|--------|--------------| 
| Adi | 170 | 2017-02-05 | 
|--------|--------|--------------| 
(있는 경우) 나 각 이름의 모든 등록에 하나 더 열을 둘 필요가

이 같은 날짜 시간 열을 기준으로, ordereb가 :

| Name | Size1 | Size2 | Size3 | 
|--------|-------|-------|-------| 
| Adi | 120 | 150 | 115 | 
|--------|-------|-------|-------| 

내가 함께 시도 나는 다음 테이블이 있습니다 :

SELECT DISTINCT table.Name, table.Size 
FROM database.table AS table 
JOIN database.table AS table1 
ON table.Name = table.Name 

감사합니다.

+0

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 쿼리에 열을 추가하는 것으로 충분하지 않습니까? 행이 누락 되었습니까? LEFT JOIN을 사용하십시오. –

+0

각 이름 (존재하는 경우)의 모든 등록과 함께 하나 이상의 열을 추가해야하며 날짜 시간 열을 사용하여 주문하십시오. – Adrian

답변

1

고유 한 열에 따라 그룹화하십시오. min()과 같은 집계 함수는 전체 결과 집합이 아닌 각 고유 그룹에 적용됩니다.

select name, 
     min(size) as size1, 
     max(size) as size2 
from your_table 
group by name 
having min(size) <> max(size) 
+0

답장을 보내 주셔서 감사합니다.하지만 날짜별로 주문해야합니다. 동일한 이름이지만 다른 날짜에 5 또는 15 개의 항목이있을 수 있습니다. – Adrian

+0

질문을 업데이트하십시오. 실제 요구 사항 추가 –