1
の配列に再マージ私はこのコードを使用してグループ化されたデータセットがあります。スプリット配列、一意な値のみを抽出し、その後、Postgresqlの
select
array_to_string(array_agg(DISTINCT "Categories"), ',') as "Categories", "Name", ROW_NUMBER() OVER() as "ID"
from data1
group by "Name"
をして、それは次のようになります。
+----+--------+-----------------------------------------+
| ID | Name | Categories |
+----+--------+-----------------------------------------+
| 1 | Class1 | Barry, Steve, Luke, Barry, Barry, Luke |
+----+--------+-----------------------------------------+
| 2 | Class2 | Luke, Barry, Steve |
+----+--------+-----------------------------------------+
| 3 | Class3 | Gerald, Jacqueline, David, Barry, Barry |
+----+--------+-----------------------------------------+
"カテゴリ"に一意の値しか持たないといけません。しかし、最初の行では、Barry, Steve, Luke
は文字列とみなされ、Barry, Luke
は文字列となるため、DISTINCT
を使用した場合、Barry
の数は切り捨てられません。
コンマ区切り文字を使用して文字列を分割してから再集計する必要があります。
出力は次のようになります。
+----+--------+-----------------------------------------+
| ID | Name | Categories |
+----+--------+-----------------------------------------+
| 1 | Class1 | Barry, Steve, Luke |
+----+--------+-----------------------------------------+
| 2 | Class2 | Luke, Barry, Steve |
+----+--------+-----------------------------------------+
| 3 | Class3 | Gerald, Jacqueline, David, Barry |
+----+--------+-----------------------------------------+
グループ化している間にグループ化するのは、グループ化した後ではない方が簡単です。グループ化の手順を表示します。 –
編集すると編集します - それは役に立ちますか? – edbyford
あなたのコードはすでに動作しているはずです。私はなぜそれがしないのか分からない。 –