Queries

SOQL DISTINCT

Removing Duplicates

SOQL DISTINCT removes duplicate field values in query results.

Introduction to SOQL DISTINCT

The SOQL DISTINCT keyword is used in Salesforce Object Query Language (SOQL) to eliminate duplicate field values from query results. This feature is especially useful when you need a unique list of values from a specific field, enhancing query efficiency and result clarity.

Syntax of SOQL DISTINCT

The DISTINCT keyword is used immediately after the SELECT keyword. It applies to the fields specified in the query, ensuring that each field combination is unique in the result set.

Using DISTINCT with Single Field

When querying a single field, DISTINCT returns unique values for that field. This is useful when you want to get a list of unique field values without duplicates.

In this example, the query retrieves a list of unique account names from the Account object.

Using DISTINCT with Multiple Fields

When using DISTINCT with multiple fields, the combination of values for these fields must be unique. This ensures that no two rows in the result set have the same combination of field values.

In this example, the query retrieves unique combinations of first and last names from the Contact object.

Limitations of SOQL DISTINCT

While DISTINCT is powerful, it has limitations. It cannot be used with fields of data types such as multi-select picklists, long text areas, and rich text areas. Additionally, using DISTINCT with large datasets might impact performance due to the need for Salesforce to filter and compare many records.

Practical Use Cases for DISTINCT

  • Data Cleaning: Retrieve a list of unique email addresses to prevent duplicates in communication.
  • Reporting: Generate reports that require unique values for accurate analysis.
  • Optimization: Reduce the amount of data processed by eliminating duplicates, which can improve performance.
Previous
COUNT
Next
LIKE