---
title: Perform a basic SQL query
description: A basic SQL query that queries data from InfluxDB 3 Enterprise most commonly includes SELECT, FROM, and WHERE clauses.
url: https://docs.influxdata.com/influxdb3/enterprise/query-data/sql/basic-query/
estimated_tokens: 4089
product: InfluxDB 3 Enterprise
version: enterprise
---

# Perform a basic SQL query

The InfluxDB SQL implementation is powered by the [Apache Arrow DataFusion](https://arrow.apache.org/datafusion/) query engine which provides an SQL syntax similar to other relational query languages.

A basic SQL query that queries data from InfluxDB 3 Enterprise most commonly includes the following clauses:

\* Required

-   \* `SELECT`: Specify fields, tags, and calculations to output from a table or use the wildcard alias (`*`) to select all fields and tags from a table.
-   \* `FROM`: Specify the table to query data from.
-   `WHERE`: Only return rows that meets the specified conditions–for example, the time is within a time range, a tag has a specific value, or a field value is above or below a specified threshold.

\`\`\`sql SELECT temp, hum, room FROM home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z' \`\`\`

## Result set

If at least one row satisfies the query, InfluxDB 3 Enterprise returns row data in the query result set. An SQL query result set includes columns listed in the query’s `SELECT` statement.

## Basic query examples

-   [Query data within time boundaries](#query-data-within-time-boundaries)
-   [Query data without time boundaries](#query-data-without-time-boundaries)
-   [Query specific fields and tags](#query-specific-fields-and-tags)
-   [Query fields based on tag values](#query-fields-based-on-tag-values)
-   [Query points based on field values](#query-points-based-on-field-values)
-   [Alias queried fields and tags](#alias-queried-fields-and-tags)

#### Sample data

The following examples use the [Home sensor sample data](/influxdb3/enterprise/reference/sample-data/#home-sensor-data). To run the example queries and return results, [write the sample data](/influxdb3/enterprise/reference/sample-data/#write-home-sensor-data-to-influxdb) to your InfluxDB 3 Enterprise database before running the example queries.

### Query data within time boundaries

-   Use the `SELECT` clause to specify what tags and fields to return. To return all tags and fields, use the wildcard alias (`*`).
-   Specify the table to query in the `FROM` clause.
-   Specify time boundaries in the `WHERE` clause. Include time-based predicates that compare the value of the `time` column to a timestamp. Use the `AND` logical operator to chain multiple predicates together.

\`\`\`sql SELECT \* FROM home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T12:00:00Z' \`\`\`

Query time boundaries can be relative or absolute.

[](#query-with-relative-time-boundaries)

Query with relative time boundaries

To query data from relative time boundaries, compare the value of the `time` column to a timestamp calculated by subtracting an interval from a timestamp. Use `now()` to return the timestamp for the current time (UTC).

##### Query all data from the last month

```sql
SELECT * FROM home WHERE time >= now() - INTERVAL '1 month'
```

##### Query one day of data data from a week ago

```sql
SELECT *
FROM home
WHERE
  time >= now() - INTERVAL '7 days'
  AND time <= now() - INTERVAL '6 days'
```

[](#query-with-absolute-time-boundaries)

Query with absolute time boundaries

To query data from absolute time boundaries, compare the value of the `time` column to a timestamp literal. Use the `AND` logical operator to chain together multiple predicates and define both start and stop boundaries for the query.

```sql
SELECT
  *
FROM
  home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'
```

[](#query-data-using-a-time-zone-offset)

Query data using a time zone offset

To query data using a time zone offset, use the [`AT TIME ZONE` operator](/influxdb3/enterprise/reference/sql/operators/other/#at-time-zone) to apply a time zone offset to timestamps in the `WHERE` clause.

Timestamp types in InfluxDB always represent a UTC time. `AT TIME ZONE` returns a UTC timestamp adjusted for the offset of the specified time zone. Timestamps in the `time` column are not updated. If you need to display the timestamps in your current timezone, this should be handled client-side.

```sql
SELECT
  *
FROM
  home
WHERE
  time >= '2022-01-01 00:00:00'::TIMESTAMP AT TIME ZONE 'America/Los_Angeles'
  AND time <= '2022-01-01 12:00:00'::TIMESTAMP AT TIME ZONE 'America/Los_Angeles'
```

### Query data without time boundaries

To query data without time boundaries, do not include any time-based predicates in your `WHERE` clause.

Querying data *without time bounds* can return an unexpected amount of data. The query may take a long time to complete and results may be truncated.

```sql
SELECT * FROM home
```

### Query specific fields and tags

To query specific fields, include them in the `SELECT` clause. If querying multiple fields or tags, comma-delimit each. If a field or tag key includes special characters or spaces or is case-sensitive, wrap the key in *double-quotes*.

```sql
SELECT time, room, temp, hum FROM home
```

### Query fields based on tag values

-   Include the fields you want to query and the tags you want to base conditions on in the `SELECT` clause.
-   Include predicates in the `WHERE` clause that compare the tag identifier to a string literal. Use [logical operators](/influxdb3/enterprise/reference/sql/operators/logical/) to chain multiple predicates together and apply multiple conditions.

```sql
SELECT * FROM home WHERE room = 'Kitchen'
```

### Query points based on field values

-   In the `SELECT` clause, include fields you want to query.
-   In the `WHERE` clause, include predicates that compare the field identifier to a value or expression. Use [logical operators](/influxdb3/enterprise/reference/sql/where/#logical-operators) (`AND`, `OR`) to chain multiple predicates together and apply multiple conditions.

```sql
SELECT co, time FROM home WHERE co >= 10 OR co <= -10
```

### Alias queried fields and tags

To alias or rename fields and tags that you query, pass a string literal after the field or tag identifier in the `SELECT` clause. You can use the `AS` clause to define the alias, but it isn’t necessary. The following queries are functionally the same:

```sql
SELECT temp 'temperature', hum 'humidity' FROM home

SELECT temp AS 'temperature', hum AS 'humidity' FROM home
```

[query](/influxdb3/enterprise/tags/query/) [sql](/influxdb3/enterprise/tags/sql/)
