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 の構文


参照