【初学者必見!】SQLの基本、実務使用例を徹底解説!LISTAGG関数編

【初学者必見!】SQLの基本、実務使用例を徹底解説!LISTAGG関数編 SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

本記事は、SQLの基本、実務使用例編になります。

SQLの基礎に関しましては、

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

本編に入ります!

LISTAGG関数の基本構文

筆者
筆者

まずは、基本構文から見ていきましょう!

LISTAGG(列名, '区切り文字') 
WITHIN GROUP (ORDER BY 並び順指定)

列名: 結合したい値が入っている列。

'区切り文字': 値と値の間に入れる文字(例:カンマ,やスラッシュ/など)。

ORDER BY: 値をどの順番で並べるかを指定。

実務レベルの使用例を見ていこう!

筆者
筆者

実際に、SQLを使用してデータを確認していきましょう。

SQLに関しては以下を使用して解説していきます。

create table文、select文、insert文、update文、delete文、

drop table文、につきましては、過去にアップロードした

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

目次の、「ふりかえり」のところにそれぞれの記事のリンクが

貼ってあるよ!

または、サイドバーのカテゴリーにSQLがあるから、そちらからでも

参照できます!

Oracle Live SQLで実行していきます!

今回、実行するSQLの一覧

CREATE TABLE(テーブル作成)

create table 従業員部署 (
  社員ID   varchar2(10),
  部署名   varchar2(50)
);

INSERT INTO(データ追加)

insert into 従業員部署 (社員ID, 部署名) values ('1', '総務');
insert into 従業員部署 (社員ID, 部署名) values ('1', '営業');
insert into 従業員部署 (社員ID, 部署名) values ('1', '開発');
insert into 従業員部署 (社員ID, 部署名) values ('2', '開発');
insert into 従業員部署 (社員ID, 部署名) values ('2', '管理');

SELECT(LISTAGGで部署名を結合)

select 
  社員ID,
  listagg(部署名, ', ') within group (order by 部署名) as 所属部署一覧
from 従業員部署
group by 社員ID;

まとめ表

用途並び順が変わる対象使用場所
WITHIN GROUP (ORDER BY)1つのセル内の文字列順LISTAGGなど集約関数の中
ORDER BY行そのものの順番SELECT文の最後に書く
筆者
筆者

LISTAGGについて解説しました。

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました