2017-02-17 16 views
0

次の問題を手伝ってください。 私は次のテーブルがあります(存在する場合)、私はそれぞれの名前のすべての登録と1つの以上の列を配置する必要があり複数行参加

| 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 | 
|--------|--------|--------------| 

、このようなDateTime列によって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

私は各名前のすべての登録(存在する場合)で1つ以上の列を配置する必要があります.Dentime列で注文してください – 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

あなたの質問を更新してください。実際の要件を追加する –