Querying Data for Multiple GA4 Event Values

IN Operator in BigQuery SQL

In the past, we looked at the OR operator that allows you to specify multiple values in the where clause and if any of those values is found then the record is returned.

For example, if I need to select all the records from the GA4 events table that are either session_start, first_visit, or page_view then I will use a SQL like this

SELECT * 
FROM your_project_id.your_dataset_id.your_table_id WHERE event_name = "session_start" 
OR event_name =  "first_visit" 
OR event_name = "page_view"

This SQL will work great for most of the scenarios you will deal with. However, there is yet another way to achieve the same result, and that is by using the IN operator.

The basic syntax for this statement is

SELECT column_name(s) 
FROM your_project_id.your_dataset_id.your_table_id 
WHERE your column_name IN (specify the list of values separated by a comma);

The above SQL using the IN operator will be:

SELECT * 
FROM your_project_id.your_dataset_id.your_table_id 
WHERE event_name IN ("session_start", "first_visit", "page_view")

For simplicity in the image below, I am only selecting the event name column but you can select any columns that you want.

OR or IN, which is better?

Using IN instead of OR in SQL can offer several advantages, depending on the context and the nature of your query. Here are some reasons why someone might choose to use IN:

  1. Readability:

    IN can make the SQL code more readable and concise. It is also shorter and often easier to understand.

  2. Ease of Maintenance:

    The IN operator can be more maintainable when dealing with a static list of values. If the values in the list change, you only need to update the values within the IN parentheses.

  3. Performance:

    IN may have better performance than equivalent queries using OR, especially when dealing with a large number of values. Databases are optimized to handle IN conditions efficiently.

Advanced Notes:

Subscribe to Premium Membership to read the rest.

Become a paying subscriber of Premium Membership to get access to this post and other subscriber-only content.

Already a paying subscriber? Sign In

A subscription gets you:
Advanced Content
Readymade SQL Scripts

Join the conversation

or to participate.