こちらの記事では、私が学んだSQLについて記載しております。
自身の忘れないためのメモとしております。
間違っている部分もあるかもしれませんので、ご了承ください。
#sumで合計値を出す
select
sum(カラム)
from
テーブル名
where
カラム名 >= '日付'
and カラム名 < '日付'; ←範囲の条件式
#avgで平均を出す
select avg(カラム名) from テーブル名;
#minで最小値を出す
select min(カラム名) from テーブル名;
#maxで最大値を出す
select max(カラム名) from テーブル名;
#countで数を数える
count(*)とすると、テーブルの行数を取得できる!
select count(*) from テーブル名;
#countを使用して限定を行う(ユニークユーザー数を求める場合)
・count(distinct カラム名) を入れることで重複を避けるcount方法になります。
同じuserをカウントしないため!
select
count(distinct user_id) ←カラム名
from
access_logs ←テーブル名
where
month = '日付'; ←カラム名
#group byを使用して、グループ化を作成する
・カラム名_aをグループ化して分ける
select カラム名_a, count(*) from テーブル名 group by カラム名_a;
・下記は、重複したuser_idは避けて、月毎にユーザー数をカウントしてます。
select
month, count(distinct user_id) 同じuserは省かれる!
from
access_logs
where
month >= '2020-01-01' where...and...で期間の限定!
and
month < '2021-01-01'
group by
month; 月ごとの結果を出すよう指定!
#havingを使用して条件式の追加を行う
・記述方法 havingは、group byの後に書くことが重要!!!!!!
select
カラム名
from
テーブル名
where
条件式
group by
カラム名
having
条件式
・having テーブルのデータを集約した結果に大して、条件式を適用する
select
month, count(distinct user_id)
from
access_logs
where
month >= '2020-01-01'
and
month < '2021-01-01'
group by
month
having count(distinct user_id) >= 500; 500以上のユーザー数をカウント 重複は省かれる!
#補足
###null(コラム)
0という意味ではなく、値がないことを示す特別な表現になる。
nullを使用する前に、別の方法で使用できないか検討した方が良い!!
###SQLの記述の順序/実行順序
記述順序 実行順序
select・・・・・取得カラムの指定 from・・・・・・・対象テーブルの指定
from・・・・・・・対象テーブルの指定 where・・・・・・絞り込み条件式の指定
where・・・・・・絞り込み条件の指定 group by・・グループ化の条件を指定
group by・・グループ化の条件指定 having・・・・・グループ化した後の絞り込み条件を指定
having・・・・・グループ化した後の絞り込み条件指定 select・・・・・取得カラムの指定
order by・・・並び替え条件指定 order by・・並び替え条件を指定
limt・・・・・・・・取得する行数の制限 limit・・・・・・取得する行数の制限