「Salesforce認定アドミニストレータ」受験してみました
半年以上ぶりに「じむ日記」書いてます
Salesforce認定アドミニストレータを受けてみようと思いながらも、独学だと難しいという記事を見たりして二の足を踏んでいました
Salesforceの管理者をやって早3年
前職で参照(閲覧)でしか触ったことがなかった人が設定とか触って大丈夫!?と恐々触って、分からないことだらけの中であちこち調べたり、サポートに聞いたり、自習室に出向いたりしながら素人DIYで増築増築を重ねてがんばってきました。
3年間に実務で覚えた知識でどこまでいけるかなという興味と、ぼちぼちどれくらい出来るのか確認もしないとな~ということで受験を決断!
と書くと、なんかがんばってる感じですが、正直なところ評価の目標設定に何か書く事ないかな~というところから出てきたイベント的な部分が大きい気もする…
本日(2022/1/31)受験しました。
上記の目標設定が上期の目標だったので、ぎりぎり半期最終日に受験
(自信なかったので、ぎりぎりまで過去問題とか対策したかったから…)
実業務で使用していない部分とか、問題分を読解するのがが難しい…に阻まれて、試験時間90分フルに使って時間切れで自動的に合否判定ページに変わった
全問回答は終わって再確認してたところだったのでよかった
無事、合格!!
よかった~これで一安心
明日から下半期も始まるので、やる気も新たに実装がテスト段階で止まってる分を進めていこうと思います
SQLレクチャー会/終了してみて
syouさんのおかげで、SQLレクチャー会を挫折せずに終えられました。
ありがとうございました!
調べながらですが、自分の欲しいものを作れるくらいにはなれたので、後はどんどんやって慣れていくようがんばろうと思います。
既にあるダッシュボードを修正するのに、もとになっているデータがどうなってるか見てみようと中を覗いて、何がどうなっているSQLが読めることに「読めるよ!読めるよ~!!」と1人で感動してました。
読めると、どこを直せばいいか分かるので、無事ダッシュボードの修正も完了。
この日は、SQLが書けるようになったことより、読めることにえらく感動した1日でした。(ここ数年で1番の感動だったな!)
営業と事務しかやった事のない40代の昭和の人間でも、覚えられたよ!使えるようになったよ!という事で、職種・年齢関係なく興味があったら出来るよ~と伝えたい!
SQLレクチャー会/第9回~第29回
<<<複数の表を結合(JOIN)しよう>>>
そもそも、なぜデータが分割されているのかというところから説明してもらいました。
2つのテーブルを紐付けためのキーワードは`JOIN`
`A JOIN B ON A.id = B.a_id`のような構文
(「AとBのテーブルを紐付けるよ、Aのテーブルの`id`カラムとBのテーブルの`a_id`というカラムが等しいものを紐付けるよ」という意味)
JOINには種類があるよ
INNER JOIN:対応する先がなかったらその行は消す
{RIGHT, LEFT} OUTER JOIN:対応する先がなくても行は出す
セルフジョイン: 自分とJOINして、過去との比較をできるようにしよう
【感想】これ、このレクチャー会のきっかけになった「別なテーブル上にある複数のデータを結合する」ってめっちゃやりたい事に合致する~!となった部分です
この後、JOINの沼にはまって宿題の練習問題に2日かかったりしてゆきます…がんばれ!自分!!
<<<ウインドウ関数再来>>>
基本的な構文:
`ウィンドウ関数(...) OVER (PARTITION BY ... ORDER BY ... ROWS BETWEEN ... PRECEDING AND CURRENT ROW)`
`PARTITION BY`は`GROUP BY`のウィンドウ関数版だと思ってもらえばよい
`ORDER BY`はそのままだけど、並び換えられる範囲はグループ内であることに注意
`ROWS BETWEEN ... PRECEDING AND CURRENT ROW`はグループ内のデータに対してウィンドウ関数を適用するときの絞り込みっぽいことをしてくれる → `ウィンドウフレーム`と呼ばれるらしい
典型的なウィンドウフレームの例:
何も書かない(特に絞り込みは行なわないということ)
`ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`(自分より前の行全部 + 自分自身の行)
`ROWS BETWEEN 11 PRECEDING AND CURRENT ROW`(自分より前11個に絞る + 自分自身の行)
頻出のウィンドウ関数:
`COUNT`:グループ内の行数を数える
`SUM`:グループ内の合計や累積和を取る
`ROW_NUMBER`:グループ内をソートして、順位を付ける
`LAG`:グループ内をソートして、前の行の値を取る
`LEAD`:グループ内をソートいて、後の行の値を取る
応用技その1:累積和
応用技その2:移動平均
<<<SQLの細かいテクニック>>>
複数のSQLの結果を縦にマージする(UNION ALL)
歯抜けになっているテーブルの値を埋めよう
【感想】1つ1つはフムフムと分かった気になるんですが、実際練習問題でやってみるとなかなか難しい…1個の練習問題にめっちゃ時間かかったけど、どうにかこうにか形にできて達成感!というサイクルを繰り返してました。
この後、SQLレクチャー会の最後10回くらいは、いろんな練習問題をやっていきました。
【感想】最終的には調べながらですが、どうにか自分でやりたい形のものを作ることができるようになりました!自身の装備が1つ増えた感じで嬉しい!!
参考図書:『10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く』
【感想】SQLレクチャー会に誘ってもらわなかったら絶対目に触れなかった本だなと思います。
実際のレクチャー会はsyouさんが作ってくれたテキスト(めっちゃ分かりやすく簡単な文章で作ってくらた&実際のシチュエーション等盛り込んでくれた)で進めていきましたが、分からなくなった時に「syouさんテキスト」とこの本2つ調べる場所があるのは心強い!
SQLレクチャー会/第3回~第8回
第3回~第8回をまとめてみました。
自分の感想コメント等見返して、「ウン成長してる」と自画自賛しながらまとめました
SQLレクチャー会/第3回~第8回
BigQuery練習会 #3 (2020/6/8) 「簡単な集計」
BigQuery練習会 #4 (2020/6/10)・#5 (2020/6/12) 「サブクエリ・WITH句」
BigQuery練習会 #6 (2020/6/15)・#7 (2020/6/18) 「ウィンドウ関数入門」
BigQuery練習会 #8 (2020/6/23) 「WHERE」
<#3>
宿題チェックTime
初の宿題で書いたSQLは`SELECT`と`FROM`と`ORDER BY`と`LIMIT`の4行(今となっては簡単なもの)だけど、15分もかかったらしい(自分のコメントが残ってた)
きっと自分がんばったんだろうな~
カラムに別の名前を付ける:`AS`を使うとカラムに別名を付けることができます
BigQueryでは日本語のカラムは付けることができません...英語でカラム名を考えるのが難しければ、ローマ字でも大丈夫です(←英語ができない私は英単語とローマ字が混ざった名前をつけてしまう)
練習でやってみると、やはり英語とローマ字まざりの名前を付ける(高校の頃、模試で英語20点を取っただけのことはある!)
休閑話題:クエリを見やすくしよう
BigQueryではWebコンソール上でクエリを見易く書き換えてくれます
【感想】やってみると、めっちゃ綺麗に並ぶので感動!!
簡単な集計をしてみよう
集約関数:平均値(`AVG`)/個数(`COUNT`)/最新(`MAX`)の日付
集約関数を使う&これまでに習った並べ替えや、TOP10を出すなどを混ぜた練習問題をやっていった
【感想】ちょっと、やれる事が増えて賢くなった気分で一人いい気分に浸ってた(笑)
このちょっとずつやれる事が増えていったのが途中棄権にならなかった要因かなと思います
<#4・#5>
宿題チェックTime
1問目:`COUNT`を使う宿題だったみたいで、この回の宿題も15分くらいかかった模様
「!」マークで怒られた模様→よく分からないけど怒られた内容にあった項目を消したらどうにかなったと自分のコメントがあります
怒られながらも進んでいけるようになった模様!
2問目:10分くらいでできたちょっと慣れてきたとコメントかいてあるので、少しずつ慣れていく様子が分かっておもしろい
サブクエリ:かっこの一番内側の`SELECT`から実行されていく(内側から外側へというイメージ/視線の流れとしては下から上へ流れていく)
WITH句:クエリ内での中間テーブルのようなものを定義できる
サブクエリ(WITH句)の練習問題
【感想】最初はやり方ガイドが書かれていて、その順番に書いていく感じで、次の問題はガイドなしという感じで問題を作ってくれたので少しずつ自分でできる部分が広がっていく感じでやり易かった。
最初はガイドありだと、迷子にならずなんか上手にできた気分にになれる(これが成功体験なのかな!?ガイドがあっても出来上がるとちょっと気分がいい)
色んな変換をしてみよう
DATE_TRUNC:`2020-06-12`のような日付を月単位(`2020-06-01`)に丸めることができる
※`MONTH``DAY``YEAR`の単位も丸められる
DATE_DIFF:日付の引き算/登録されてからの日付等が出せる
CASE:~なら●●みたいなやつ/台数をレンジに分ける等
【感想】おー!いろいろできて便利だぞ!!
<#6・#7>
宿題チェックTime
今回はサブクエリ(WITH句)の練習問題だったようで、結構悪戦苦闘したみたい
「怒られて→直す を繰り返してるうちに答えはそれっぽくなったんですが、やってきた道のりを記録するのを忘れた…」とコメントが残ってる
この辺りから、宿題の練習問題に40分とか1時間とかかかりだしてる…途中で自分でも何やってるのか分からなくなって、最初からやり直してみたり試行錯誤がんばってる過去の自分がいます
がんばれ自分!と未来(今)の自分が応援してます
ウィンドウ関数入門
深い分析でやりたくなること「集約もしつつ、元データの情報も合わせて行に持ちたい!」ができるやつ
ウィンドウ関数は過去に書いたやつをチラチラ見ないと書けないので、すぐ書けなくても全然気にしなくていいです
レクチャー会、2~3回くらいかけてやっていこうと思いますので、ぼちぼち行きましょう
(↑もう無理だ…才能ない…とめげてしまわないようめっちゃ気を使ってもらってる)
`PARTITION BY`:`GROUP BY`と同じようなイメージ/`PARTITION BY`で指定したカラムでグルーピングする
`ROW_NUMBER()`:`PARTITION BY`でグルーピングされた中での順番を出す
rankを出す以外にも、ウィンドウ関数は様々なことができます
`LAG`関数:グルーピングした内部の前の行の結果を取得したいときに使う関数
【感想】この辺りも色々できて便利だな~実際に出したいレポートとかイメージが広がってちょっと楽しい気分でした!
<#8>
欲しい条件でデータをフィルタしよう
`WHERE`:条件でデータをフィルタ/条件「文字列が等しい」→`=`を使う/条件「この文字列がどこかに入るんだけど...」→`LIKE`と`%`を使う
【感想】おー!部分検索できるぞ!!便利!!!
NULL(何もない)とBoolean(真偽値。「ぶーりあん」と呼びます)については特別
Boolean:`=`ではなくて`IS TRUE`とか`IS FALSE`と書く
NULL:` = "NULL"` ではなく`IS NULL`と書く
【感想】「Boolean」という文字列は見たことあったけど、ここで読み方初めて知った。
エクセルのvlookupとかで`TRUE`や`FALSE`はなじみがあったのですんなり理解できたぞ!
複数の条件を付けるとき:`OR`や`AND`を使う/`OR`や`AND`の数が多くなったときに便利→`WHERE ... IN`
【感想】10個くらいまでなら頑張るけど、それ以上はめんどいなと思ってたら便利なものがあるではないですか!!!
SQLレクチャー会(生徒目線)についての今後
第2回目までは、こんな感じで「手厚くやってもらってました」が伝わるかなと思って、結構細かくやった事など書いてみました。
が、しかし
このレクチャー会は第29回までやってもらいました。
この後、27回分詳細を読みたいという需要はあまりない気がしなくもない…
(わたし的には、1回ずつ事細かに読み返して、書いていくと復習になっていいんだけど)
ということで、やった項目とその時の感想や、ハマった点などをまとめていこうかなと思います。