[解決済み] PostgreSQLのarray_aggオーダー
2022-06-25 04:19:27
質問
テーブル「動物」。
animal_name animal_type
Tom Cat
Jerry Mouse
Kermit Frog
クエリ
SELECT
array_to_string(array_agg(animal_name),';') animal_names,
array_to_string(array_agg(animal_type),';') animal_types
FROM animals;
期待される結果
Tom;Jerry;Kerimt, Cat;Mouse;Frog
OR
Tom;Kerimt;Jerry, Cat;Frog;Mouse
最初の集計関数の順序が常に2番目と同じであることを確認できますか。 つまり、私は取得したいとは思いません。
Tom;Jerry;Kermit, Frog;Mouse,Cat
どのように解決するのですか?
PostgreSQL のバージョン < 9.0 を使用している場合。
からです。 http://www.postgresql.org/docs/8.4/static/functions-aggregate.html
<ブロッククオート現在の実装では、原則的に入力の順番は指定されていません。しかし、ソートされたサブクエリから入力値を供給することは、通常うまくいきます。例えば
SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab.SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
ということで、あなたの場合はこう書きます。
SELECT
array_to_string(array_agg(animal_name),';') animal_names,
array_to_string(array_agg(animal_type),';') animal_types
FROM (SELECT animal_name, animal_type FROM animals) AS x;
そうすると、array_aggへの入力は順序付けされないが、両方の列で同じになる。そして、もしあなたが好きなら
ORDER BY
節をサブクエリに追加することもできます。
関連
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] PostgreSQLからのPL/pgSQL出力をCSVファイルに保存する
-
[解決済み] PostgreSQLでデータベースのコピーを作成する
-
[解決済み] PostgreSQLデータベースにアクティブな接続がある場合、そのデータベースを削除する方法は?
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLの自己インクリメント構文使用上の注意点
-
PostgreSQLにおけるVACUUMコマンドの使用方法
-
[解決済み] PostgreSQL は設定/conf ファイルをどこに保存しますか?
-
[解決済み] PostgresでInsert文のUUIDを生成する?
-
[解決済み] Postgresqlの場合。パスワード付きで psql を実行するスクリプト
-
[解決済み] PostgreSQLのINSERT ON CONFLICT UPDATE(upsert)は除外された値をすべて使用します。
-
[解決済み] PostgreSQLでカラムのデフォルト値を変更するにはどうすればよいですか?
-
[解決済み] PostgreSQLでタイムスタンプの差を秒単位で求める
-
[解決済み] 拡張機能は存在するが、uuid_generate_v4 が失敗する
-
[解決済み] Postgresql。条件付き一意性制約