複数の行を列に格納するフィールドをどのように変換しますか?SQL行を列に変換する
現在のデータ:
COL1 COL2 COL3
----------------
TEST 30 NY
TEST 30 CA
TEST2 10 TN
TEST2 10 TX
Iが出力になりたい:あなたのサンプルデータに基づいて
COL1 COL2 COL3 COL4
------------------------
TEST 30 NY CA
TEST2 10 TN TX
複数の行を列に格納するフィールドをどのように変換しますか?SQL行を列に変換する
現在のデータ:
COL1 COL2 COL3
----------------
TEST 30 NY
TEST 30 CA
TEST2 10 TN
TEST2 10 TX
Iが出力になりたい:あなたのサンプルデータに基づいて
COL1 COL2 COL3 COL4
------------------------
TEST 30 NY CA
TEST2 10 TN TX
、あなたはこれを試すことができます。ピボットを使用する必要はありません。
SELECT col1,
col2,
MIN(col3) col3,
MAX(col3) col4
FROM table
GROUP BY col1,
col2
はい、サンプルデータでは動作しますが、同じcol1とcol2を持つ3つ以上の行がある場合は動作しません。 –
私は知っています。私はcol1とcol2が2行以上ある状況ではrow_number()を使うことができますが、col3とcol4のどちらにあるべき論理的解決方法がまだ決まっている必要があります。 –
通常はPIVOT機能があります。 –
あなたのrdbmsは何ですか? SQL Server、postgres、oracle? –
ピボットを検索します。例:http://modern-sql.com/use-case/pivot –