地層を剥がす

声を失った人間の発声練習です

『スッキリわかるSQL入門 第2版』ドリル(題材A・LEVEL5)の答え

『スッキリわかるSQL入門 第2版』のドリルを解き、ひたすら答えを載せていくシリーズです。今回は題材A・LEVEL5。SQL特有の書き方にも、だいぶ慣れてきました。

 

49.

select sum(残高) as 残高の合計, max(残高) as 最大, min(残高) as 最小, avg(残高) as 平均, count(*) as 登録されているデータ件数
from 口座

 

50.

select count(*) as 件数
from 口座
where 種別 != '1'
and 残高 >= 1000000
and 更新日< '2018-01-01'

 

51.

select count(*)-count(更新日) as 件数
from 口座

 

52.

select max(名義) as 名義の最大値, min(名義) as 名義の最小値
from 口座

 

53.

select max(更新日) as 更新日の最大値, min(更新日) as 更新日の最小値
from 口座

 

54.

select 種別, sum(残高) as 残高の合計, max(残高) as 最大, min(残高) as 最小, avg(残高) as 平均, count(*) as データ件数
from 口座
group by 種別
order by 種別

 

55.

select substring(口座番号, 7, 1) as 口座番号の下一桁, sum(残高) as 残高, count(*) as データ件数
from 口座
group by 口座番号の下一桁
order by 口座番号の下一桁

 

56.

select substring(coalesce(cast(更新日 as varchar), 'XXXX年'), 1,4)|| '年' as 年,
sum(残高) as 残高の合計, max(残高) as 最大, min(残高) as 最小, avg(残高) as 平均, count(*) as データ件数
from 口座
group by 年
order by 年

 

57.

select 種別, sum(残高) as 残高の合計, count(*) as データ件数
from 口座
group by 種別
having sum(残高) > 3000000
order by 種別 

 

58.

select substring(名義, 1, 1) as 名義, count(名義) as 件数, avg(length(replace(名義, ' ', ''))) as 名義文字数の平均
from 口座
group by substring(名義, 1, 1)
having count(名義) >= 10
or avg(length(replace(名義, ' ', ''))) > 5
order by substring(名義, 1, 1)