締切済み

複数行を1レコードにまとめたい

  • すぐに回答を!
  • 質問No.9544535
  • 閲覧数151
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 14% (21/141)

1つのテーブルでカラムAに個人を特定する情報、カラムBに個人情報の項目、カラムCにその値が設定されています。
カラムBは個人によって登録されている数が異なります。
カラムBから必要な項目を特定して個人を1レコードに集約して抽出したいと思っているのですが、どのようにSQLを作成すればよいでしょうか?

作成してみたSQLでは1レコードに1カラムずつしか値が入らないため、複数行となってしまうのでまとめたいという状況です。

データ
カラムA, カラムB, カラムC
-------------------------
KOJIN1, AAA, MOJI1
KOJIN1, BBB, MOJI2
KOJIN2, AAA, MOJI3
KOJIN3, BBB, MOJI4
KOJIN3, CCC, MOJI5

select カラムA, case when カラムB = AAA then カラムC end カラムAAA, case when カラムB = BBB then カラムC end カラムBBB
from テーブル

結果
カラムA, カラムAAA, カラムBBB
-----------------------------
KOJIN1, MOJI1,
KOJIN1, , MOJI2
KOJIN2, MOJI3,
KOJIN3, , MOJI4
↑KOJIN1, MOJI1, MOJI2 のように出力したい

初歩的な質問かもしれませんが、よろしくお願いします。

回答 (全2件)

  • 回答No.2

ベストアンサー率 9% (6/66)

単純にグループでまとめるでダメなの?

select カラムA,
max(case when カラムB = 'AAA' then カラムC else null end) カラムAAA,
max(case when カラムB = 'BBB' then カラムC else null end) カラムBBB,
max(case when カラムB = 'CCC' then カラムC else null end) カラムCCC
from テーブル
group by カラムA;
  • 回答No.1

ベストアンサー率 31% (57/181)

このテーブルには、キーがない。どのデータも複数あり正規化されていない。
まず、データーベースとは、どのようなものか基本を習得するべきだと思います。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ