CHJBootCamp2018

SQL(2) グループ化、表の結合

グループ化と集計

グループ化 GROUP BY

ORDER BY (復習)

COUNT 集計関数

表の結合

書誌情報テーブルと結合

短単位・長単位テーブルを結合(外部結合)

【補足】

表の結合と集計

関数のいろいろ

組み込み関数

ユーザー定義関数

select top 100 dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20) from 短単位
select top 100 サンプルID,dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20),語彙素,語彙素読み,品詞 from 短単位
where 語彙素 like '鰻'

BCCWJデータを使うには

use chunagon_bccwj

SQL(3) コーパスデータの扱い

CASE式

 select 作品名, count(*) as 総語数,sum(CASE WHEN 本文種別='歌' THEN 1 ELSE 0 END) as 歌語数
 from 短単位 as S inner join 書誌情報 as B on S.サンプルID=B.サンプルID
 where S.サブコーパス名 like '平安'
 group by 作品名

連続する語の取り出し

文数・文節数・語数

select 作品名--,S.本文種別
,sum(case when S.文境界 = 'B' then 1 else 0 end) as 文数
,sum(case when 文節='B' then 1 else 0 end) as 文節数
,count(L.語彙素) as 長単位数
,count(S.語彙素) as 短単位数
from 短単位 as S inner join 書誌情報 as B on S.サンプルID = B.サンプルID
left join 長単位 as L on S.サンプルID = L.サンプルID and S._文字開始位置 = L._文字開始位置
where B.サブコーパス名 like '平安'
group by B.作品名--,S.本文種別

サブクエリ

括弧でくくったSELECT文に名前を付けて、あたかもテーブルであるかのように扱える

辞書の階層化された見出し表を扱う

use unidicSQL

コーパスと辞書を繋ぐ

一時テーブルの作成

#で始まるテーブル名は、DB切断後削除される一時テーブルとなる。現在の権限でも一時テーブルは作成できる。

select * from #鰻テーブル
create table #ogiso_tmp ( ID int ,調査語彙素 varchar(10) ,調査語彙素読み varchar(10) )

質疑・相談会

受講者アンケート


*1 BCCWJにおけるサブコーパスは、出版/図書館/特定目的の別。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS