postgreSQL7.3で以下のようなデータの並び替えを実現したいと思っています。
下記のようなデータを・・・
no | recno | name
----+-------+------
1 | 1 | a
1 | 1 | b
1 | 2 | c
1 | 4 | a
2 | 3 | a
2 | 3 | c
2 | 3 | b
3 | 5 | b
4 | 6 | a
下記のような並びにSQLで取得することは可能でしょうか。
no | recno | name1 | name2 | name3
----+-------+------+------+------
1 | 1 | a | b |
1 | 2 | c | |
1 | 4 | a | |
2 | 3 | a | b | c
3 | 5 | b | |
4 | 6 | a | |
noとrecnoのグループごとにnameを横に並べていきたいのですが、
可能なのでしょうか。
できれば、nameは個々のカラムに出力したいのですが、
配列のように1つのカラム内にカンマ区切りでの出力でも構いません。
上記のような表示が可能であれば、SQL文もご教授いただけますと幸いです。
宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ちょっとインチキですけど、こんなのはどうでしょうか。
select no, recno, (case when s=1 then 'a'
when s=2 then 'b'
when s=3 then 'a,b'
when s=4 then 'c'
when s=5 then 'a,c'
when s=6 then 'b,c'
when s=7 then 'a,b,c'
else '' end ) as names
from
(select no, recno, sum(case when name = 'a' then 1
when name = 'b' then 2
when name = 'c' then 4
else 0 end) as s
from ex5 group by no,recno order by no,recno) as b;
いちおう動きます(笑)
no | recno | names
----+-------+-------
1 | 1 | a,b
1 | 2 | c
1 | 4 | a
2 | 3 | a,b,c
3 | 5 | b
4 | 6 | a
(6 rows)
No.2
- 回答日時:
postgresqlは専門外なのですが、こんな感じで処理できないですかね。
select
no,
recno,
max(case when r=1 thwn name else null end) as name1,
max(case when r=2 thwn name else null end) as name2,
max(case when r=3 thwn name else null end) as name3
from
(
select
no,
recno,
name,
(select count(*) from x x2 where x2.no=x1.no and x2.recno=x1.renco and x2.name<=x1.name) as r
from x x1
)
group by no,recno
No.1
- 回答日時:
この回答への補足
ご回答ありがとうございます。
ARRAY関数はPostgreSQL7.4からの機能でして、
当方が使用しているPostgreSQL7.3の環境で使用することができませんでした。
他に方法をご存知でしたら、ご教授いただけますと幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルからのselectにおいて...
-
postgreSQLのint型は桁数指定が...
-
クエリアナライザのsp_helpコマ...
-
3つのテーブルの処理について
-
マルチテーブル・インサート
-
UNIQUEをつけたときのINDEXテー...
-
SQLでスキーマ名(所有者名)の...
-
データを削除しても表領域の使...
-
異なるスキーマからデータを抽...
-
Viewにインデックスは張れ...
-
count(1)とcount(*)の違い
-
INDEXの無効化
-
Data Pump で大量データインポ...
-
Access レコードを追加できませ...
-
ORA-00959: 表領域'****'は...
-
エクセルからアクセスにインポ...
-
検索結果の列数を動的に変更したい
-
CLOB型へのINSERT
-
C#でaccdbファイルのテーブルの...
-
select insert 句
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
クエリアナライザのsp_helpコマ...
-
UNIQUEをつけたときのINDEXテー...
-
PostgressからMySQL(MariaDB)...
-
pl/pgsqlで変数の扱い
-
SQL SELECT文 別テーブルのレコ...
-
SQLで検索結果の記事を表示したい
-
3つのテーブルの処理について
-
PostgreSQLでの複数結果のまとめ方
-
PostgresSQL8.4でツリー上に取...
-
賢いSQL文がわからない
-
SQL文作成のお願い
-
postgreSQLの正規表現
-
テーブル作成 外部参照 配列
-
もうちょっと賢いSELECT文が書...
-
Postgresqlの自己結合について
-
2つの異なるテーブルを和結合し...
-
チェックボックスから、データ...
-
全テーブルのデータの行数
おすすめ情報