SOQLおさらいメモ
はじめに
SFDGルーキー会#141にてSOQLをおさらいしたメモ
Trailheadなどで分かったつもりになっていた部分や、時間が経って忘れかけていた部分の覚え書きとして。
※本当にメモ程度なので詳しくはリファレンスを参照する
LIMIT N
検索結果で返されるレコード数を指定する
SELECT Id FROM Account LIMIT 1
WHERE
句
テキストは''
で囲う
SELECT Id, Name FROM Oppotunity WHERE StageName = 'Close Won'
日付リテラル
相対的な時間範囲を表せる(日付形式と日付リテラルを参照)
SELECT Name, CreatedDate FROM Account WHERE CreatedDate = LAST_MONTH
項目名
オブジェクトマネージャなどで参照し正確に記載する
SELECT Id, Name, Industry, NumberOfEmployees, AnnualRevenue FROM Account
リレーションクエリ
参照先の項目を取得するには.
で繋ぐ(リレーションクエリ)
SELECT Name, Account.Name, Account.NumberOfEmployees FROM Opportunity
集計関数
指定した項目を集計するには集計関数を使う。
WHERE
句で集計対象を絞り込む
SELECT SUM(Amount) FROM Opportunity WHERE StageName = 'Closed Won' SELECT AVG(AnnualRevenue) FROM Account WHERE AnnualRevenue > 0
SUM
: 合計, AVG
: 平均
LIKE
演算子
WHERE
句内で部分一致の条件指定が可能。WHERE 項目名 LIKE '%検索文字%'
という風に使う
SELECT COUNT(Id) FROM Account WHERE Name LIKE '%Test%'
COUNT
: レコード数
GROUP BY
, ORDER BY
指定した項目でグループ化を行う, レコードの表示順を制御する
SELECT CloseDate, COUNT(Id) FROM Opportunity GROUP BY CloseDate ORDER BY CloseDate DESC LIMIT 8
DESC
: 降順
GROUP BY
, ORDER BY
, LIMIT
の順序に注意する (以下「構文について」参照)
構文について
クエリの各句は記載順序が決められており、順番が違うとエラーとなりSOQLは実行されない。(SELECT
,FROM
は必須。他は省略可能)
参考: SOQL SELECT の構文