トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
5-7 文字列のカウントを求める
SQLパズル
TABLE_A
FIELD1
---------------
(・∀・)
(・∀・)ホー
(・∀・)カエレ
(・ε・)
TABLE_B
FIELD2
---------------
AAA(・∀・)AAA
AAA(・∀・)AAA
AAA(・∀・)AAA
AAA(・∀・)ホーAAA
AAA(・∀・)カエレAAA
TABLE_AのFIELD1ごとに、TABLE_BのFIELD2でのカウントを求める。
出力結果
------------------------
(・∀・) 3レコード
(・∀・)ホー 1レコード
(・∀・)カエレ 1レコード
(・ε・)0 レコード
データ作成スクリプト
create table TABLE_A(FIELD1 varchar2(14));
create table TABLE_B(FIELD2 varchar2(20));
insert into TABLE_A(FIELD1) values('(・∀・)');
insert into TABLE_A(FIELD1) values('(・∀・)ホー');
insert into TABLE_A(FIELD1) values('(・∀・)カエレ');
insert into TABLE_A(FIELD1) values('(・ε・)');
insert into TABLE_B(FIELD2) values('AAA(・∀・)AAA');
insert into TABLE_B(FIELD2) values('AAA(・∀・)AAA');
insert into TABLE_B(FIELD2) values('AAA(・∀・)AAA');
insert into TABLE_B(FIELD2) values('AAA(・∀・)ホーAAA');
insert into TABLE_B(FIELD2) values('AAA(・∀・)カエレAAA');
commit;
SQL
select FIELD1 || (select to_char(count(*)) from TABLE_B b
where trim('A' from b.FIELD2) = a.FIELD1) || ' レコード'
from TABLE_A a;
解説