Generate a recurring report with SQL
In this example, we'll create a SQL task and a corresponding schedule to generate a
recurring report from a Postgres database.
To follow along, you'll need a DB you can connect to. We'll be using the Demo DB, may already be
present as a resource in your workspace. If you don't have the Demo DB or
would like to connect to your own database, make sure you add a PostgreSQL
or MySQL resource first.
Create a task
Create a task
First, let's create a new SQL task from the UI. Visit the home page, click the
New...
button, and
finally click Task
to reach the Create a Task page.Select "SQL" as the task type, and give your task a readable name. For this example, we'll call it
Top 5 Accounts
.
We'll want to restrict our query by country, so let's add a new parameter.
We'll call it
Country
, and leave it as a required Short text
parameter. Notice that it's
automatically assigned a slug. You can give it a description here, too.
Click
continue
. In this section, you'll build your task. Select the Demo DB (or the name of the
resource you want to connect to) as your Database resource. In the Query field, write a
select query to generate your report. In this example, we're looking for the company name, country,
and total dollars of the top five accounts by total dollars in a particular country.sqlCopied1SELECT company_name, country, total_dollars2FROM accounts3WHERE country = :country4ORDER BY total_dollars DESC5LIMIT 5;
In the Query arguments section, make sure you add
country
as an argument, with a value of
{{params.country}}
. We use query arguments here to avoid
SQL injection attacks.Query arguments
country
{{params.country}}
Click
continue
. In this section, you can define a custom timeout on the task as well as additional
permissions. For this example, the defaults are perfectly acceptable.Click
Create task
to finish.You've set up your SQL task! Execute it from the task page so you can test that it's generating the
right data before setting up a schedule.
Set up the schedule
Set up the schedule
Select
Create schedule
from the dropdown under Edit task
on the task page.
Give your schedule a readable name, an optional description, and an appropriate schedule. This will
be a weekly report, so we're scheduling it to run on every Monday using
cron syntax.

In the
Parameters
section, we can define the parameter values that we want to use when this
schedule runs. This is a report of accounts in the USA, so we'll add that as the country.
Select
Create new schedule
to finish.Wrapping up
Wrapping up
You've set up a recurring weekly report! The schedule page will show you a list of recent runs
generated by the schedule and when the next three runs will be.

Click through any of these runs to see the output of the query.
