DBアワー出張編 Lv1 ~ Lv2の問題を解いてみる会 2023/8/17

 

録画・記録

範囲

レベル1(単一のテーブルについて、条件を指定し、総数等を算出できる)

  • SQL
    • select ★
    • limit, offset
    • order
    • where, 比較演算子 ★
    • and, or
    • count, sum, avg ★
    • min, max
    • group by ★
    • コメント
  • 社内データの定義
    • (社内のみ公開)から必要な情報を見つけられる ★
  • Redash
    • クエリを作成して保存できる
    • Chartの基本的な機能が使える

レベル2(複数のテーブルにまたがる基本的なクエリならほぼ書ける)

  • SQL
    • having ★
    • distinct
    • is null, is not null ★
    • 算術演算子
    • like, in, between
    • join, left join ★
    • with, サブクエリ(どちらでも書けるように) ★
    • タイムゾーンの変換 ★
    • union
    • 条件式(case, coalesce)
    • cast
  • 社内データの定義
    • (社内のみ公開)から欲しい情報を見つけられる ★
  • Redash
    • パラメータ機能 ★
    • テーブルのカスタマイズ(Image・URL)

Lv.1

Google Drive
SQL Lv1解説資料
Updated Mar 19, 2024
行けている人が多そうなので、復習から

select, from, limit

テーブル定義を見よう

where, and, or

name = 'qjo' であるユーザのidと年代
id = 144 であるブランドの名前、商品数

Lv2範囲:時刻について

現在時刻
そもそもredshiftとmysqlって何が違うの?
mysqlは普段ユーザーさんがデータにアクセスするときに使うメインのDB。データが正しい
redshift(postgresql)は集計処理が得意。たくさん数えたり、グラフを作ったりするときはこっちが早い。ログが入っている
参考:
方言が違うので、部分的に使えたり使えなかったりする
そういうときは普通にググる(エンジニアもよくググっている)
引き算
はキャスト
 
型はエクセルの表示形式みたいなもの。intervalは時刻と時刻の差を表す
他によく使うのだと (小数)とか
絞り込み
 

order by, offset

 
フォロワー数の降順で20位 ~ 40位のユーザの id, 名前, フォロワー数, 投稿数

count, sum, avg, group by

 
テーブル:articles
 
target
0 web(Webのみ)
1 app
2 both
3 ios
4 android
5 inpage
 
閲覧数
view_count
 
記事のターゲットごとに、個数、平均閲覧数、合計閲覧数

having

テーブル
inquiries
問い合わせ種別
category
 
getdate()
‘30 day’::interval
having
group by
count
 
created_at(作成日)で30日以内に絞る
直近30日で、100回以上来た問い合わせ種別(category)

visualization

table

 

chart

 

コメント・セミコロン

Cmd + スラッシュ(/)でコメントアウト 戻す
 

関数
count
sum

Lv2

with

 

join

 

left join, is null

 

count(応用編)