SQL Parentheses in Conditions
Make the grouping explicit — never rely on a reader (or yourself, next month) remembering precedence rules.
What & Why
Wrapping part of a condition in parentheses forces that grouping explicitly, regardless of default precedence. The previous lesson's ambiguous query becomes unambiguous the moment it's parenthesized.
See How It Works
| id | name | channel | spend | start_date | end_date | status | target_segment |
|---|---|---|---|---|---|---|---|
| 1 | Spring Launch | google_ads | 55000.00 | 2024-01-15 | 2024-03-31 | active | smb |
| 2 | Retention Webinar | 45000.00 | 2024-02-10 | 2024-04-15 | active | enterprise | |
| 3 | Finance Retargeting | 50000.00 | 2024-03-12 | 2024-05-31 | active | enterprise | |
| 4 | Enterprise Search | google_ads | 60000.00 | 2024-04-01 | 2024-06-30 | active | enterprise |
EXAMPLE QUERY
-- explicit: matches what the query intends
SELECT name FROM marketing.campaigns
WHERE (channel = 'linkedin' OR channel = 'email') AND spend > 40000;RESULT — the grouped condition is explicit
| name |
|---|
| Retention Webinar |
| Finance Retargeting |
Both campaigns belong to one of the grouped channels and have spend above 40000.
Now You Try
Practice this concept
Marketing wants only active campaigns that run through either content or webinar channels.
Available schema
marketingPrefix tables with marketing.table_name.
namechannelstatusmarketing.campaigns| Column | Type |
|---|---|
| id | integer |
| name | text |
| channel | text |
| spend | numeric |
| start_date | date |
| end_date | date |
| status | text |
| target_segment | text |
| legacy_id | text |
query.sql
Sign up free to try it on a real business scenario