DBアワー出張編 Lv1 ~ Lv2の問題を解いてみる会 2023/8/17
録画・記録範囲Lv.1select, from, limitテーブル定義を見ようwhere, and, orLv2範囲:時刻についてレベル1(単一のテーブルについて、条件を指定し、総数等を算出できる)レベル2(複数のテーブルにまたがる基本的なクエリならほぼ書ける)order by, offsetcount, sum, avg, group byhavingvisualizationtablechartコメント・セミコロン句Lv2withjoinleft join, is nullcount(応用編)
録画・記録
範囲
レベル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)
参考
📕 レベル2で覚える機能を使う基本的な問題 (社内のみ公開)
Lv.1
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