Build Complex Queries

This guide shows you how to build complex queries with multiple conditions, joins, and aggregations.

Chain Multiple Methods

posts = Post
  .where(published: true)
  .where { views_count > 100 }
  .order(created_at: :desc)
  .limit(10)
  .all

Compound Conditions

AND

User.where { (active == true) & (verified == true) & (age > 18) }.all

OR

User.where { (role == "admin") | (role == "moderator") | (role == "owner") }.all

Mixed

User.where { (active == true) & ((role == "admin") | (role == "moderator")) }.all

Subqueries

Aggregations

Count

Sum

Average

Min/Max

Grouping Results

Select Specific Columns

Order by Multiple Columns

Offset for Pagination

Distinct Results

Complex Example

Raw SQL (when needed)

For very complex queries:

Verify Query Works

Last updated

Was this helpful?