What are variables?
Sometimes referred to as parameters, variables are placeholders in SQL for values that can change. Variables store the value you assign them, and pass them on when used in a query.
They’re extremely helpful when you want to update literal values in your queries.
Typically, DECLARE and SET statements are used to create variables and assign them values, with the syntax looking like:
DECLARE @Local_Variable SET<@Local_Variable =
Google allows you to run something similar to variables in BigQuery, called parameterized queries, but it only works via their API and not when using the Web UI.
However, you still have to use the DECLARE and SET clauses, which can get tedious if you’re creating lots of variables or repeatedly changing values.
Next, we’re going to show you:
- How to quickly set up variables in superQuery without using any SQL.
- How to save TONS of time by using variables in your queries.
How to create and use variables in superQuery
Step 3: Select your variable’s data type.
In superQuery, variables can hold the following data types: STRING, NUMBER, DATE, DATETIME.
Step 4: Give your variable a good name and click “Save”.
In the example below, since we’re analyzing e-commerce store data, let’s create a variable for product category.
For this, we’ll create a String variable, naming it “category” and giving it an initial value of “Bags“.
This replaces the variable-creation process of writing DECLARE and SET clauses.
Step 5: Use your variable in a query.
Use variables in your SQL by placing an “@” character in front of the variable’s name, like in the example below.
To edit your variable’s value, change it in the text box next to your variable’s name. Then run the query again to explore the new results.
Quick notes on variables in superQuery:
[Bonus] Step 6: How to use variables as DATE and DATETIME substitutes
Variables are incredibly helpful when you’re working with dates. In our example above, we were dealing with a specific date range — “BETWEEN ‘2017-01-01 AND ‘2017-12-27’“.
In this situation we would create two DATE variables — we’ll call them begDate and endDate — to replace the values. This allows us to dynamically change the date values and quickly examine different date ranges.
Lastly, you have the ability to set dynamic values for your date variables. For instance, if you wanted our endDate variable from above to always represent the current day, you would just select Today as the option.
To give your variable a dynamic value click on a date variable’s value. A calendar dropdown will appear. From there, either choose a date on the calendar itself, or one of the dynamic values below it.
Why use variables?
Without variables, if you wanted to update your SQL — like changing the value of “category“ above — you had to manually find the value in your code and then change the value. Or, if you had multiple occurrences that needed to change, you’d use CTRL-F + Replace All.
Imagine having to find the specific value you’d like to change when the SQL is 100+ lines.
Now, you can insert a variable in place of any value and update its value without needing to revisit a specific line in your SQL again.
Using variables with visualizations
Variables are also useful when you’re visualizing your queries in superQuery.
When you update your variable(s) values while in Visualize mode and click the “Refresh” icon, any widgets containing a variable
This is the same as running a new query, and your visualizations will update accordingly.
Now that you know how to create and use variables, it’s time to try them out on your own BigQuery data.
They’ll give your SQL some flexibility, and save you tons of time when making small changes.