Query data with SQL
Learn to query data in InfluxDB 3 Enterprise using SQL.
- Explore your schema with SQL
 - Perform a basic SQL query
 - Aggregate data with SQL
 - Cast values to different types
 - Fill gaps in data
 - Use parameterized queries with SQL
 
Explore your schema with SQL
Use SQL to explore your data schema in your InfluxDB 3 Enterprise database.
List tables
SHOW TABLESList columns in a table
SHOW COLUMNS IN tablePerform a basic SQL query
A basic SQL query that queries data from InfluxDB 3 Enterprise most commonly includes SELECT, FROM, and WHERE clauses.
SELECT temp, room FROM home WHERE time >= now() - INTERVAL '1 day'Aggregate data with SQL
Use aggregate and selector functions to perform aggregate operations on your time series data.
Aggregate fields by groups
SELECT
  mean(field1) AS mean,
  selector_first(field2)['value'] as first,
  tag1
FROM home
GROUP BY tagAggregate by time-based intervals
SELECT
  DATE_BIN(INTERVAL '1 hour', time, '2022-01-01T00:00:00Z'::TIMESTAMP) AS time,
  mean(field1),
  sum(field2),
  tag1
FROM home
GROUP BY 1, tag1Cast values to different types
Use the CAST function or double-colon :: casting shorthand syntax to cast a value to a specific type.
-- CAST clause
SELECT CAST(1234.5 AS BIGINT)
-- Double-colon casting shorthand
SELECT 1234.5::BIGINTFill gaps in data
Use date_bin_gapfill with interpolate or locf to fill gaps of time where no data is returned.
SELECT
  date_bin_gapfill(INTERVAL '30 minutes', time) as time,
  room,
  interpolate(avg(temp))
FROM home
WHERE
    time >= '2022-01-01T08:00:00Z'
    AND time <= '2022-01-01T10:00:00Z'
GROUP BY 1, roomUse parameterized queries with SQL
Use parameterized queries to prevent injection attacks and make queries more reusable.
Using Go and the influxdb3-go client
// Use the $parameter syntax to reference parameters in a query.
// The following SQL query contains $room and $min_temp placeholders.
query := `
  SELECT * FROM home
  WHERE time >= $min_time
    AND temp >= $min_temp
    AND room = $room`
// Assign parameter names to input values.
parameters := influxdb3.QueryParameters{
        "room": "Kitchen",
        "min_temp": 20.0,
        "min_time": "2024-03-18 00:00:00.00",
  }
// Call the client's function to query InfluxDB with parameters.
iterator, err := client.QueryWithParameters(context.Background(), query, parameters)Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB 3 Enterprise and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support. Customers using a trial license can email trial@influxdata.com for assistance.