# QuestDB Documentation ## Getting Started - [QuestDB Documentation - SQL Time-Series Database Guides](https://questdb.com/docs/index.md): Official QuestDB documentation covering installation, data ingestion, SQL reference, and operations for both open source and Enterprise editions. - [Schema design](https://questdb.com/docs/schema-design-essentials.md): Learn how to design efficient schemas in QuestDB. Covers timestamps, partitioning, data types, deduplication, and retention strategies. ## Getting Started - [Quick start](https://questdb.com/docs/getting-started/quick-start.md): Get started with QuestDB, as quickly as possible. Instructions for docker, homebrew, our binaries, and more. - [AI Coding Agents](https://questdb.com/docs/getting-started/ai-coding-agents.md): Use AI coding agents like Claude Code or OpenAI Codex to build applications, write queries, and work with QuestDB using natural language. - [Capacity planning](https://questdb.com/docs/getting-started/capacity-planning.md): How to plan and configure system resources, database configuration, and client application code available to QuestDB to ensure that server operation continues uninterrupted. - [Create a sample database](https://questdb.com/docs/getting-started/create-database.md): This guide demonstrates generating and managing sample time-series data in QuestDB, including table creation, data insertion, querying, and cleanup. - [Upgrade to QuestDB Enterprise](https://questdb.com/docs/getting-started/migrate-to-enterprise.md): Upgrade from QuestDB Open Source to QuestDB Enterprise in minutes by swapping binaries. - [QuestDB Enterprise Quick Start](https://questdb.com/docs/getting-started/enterprise-quick-start.md): Get started with QuestDB Enterprise, as quickly as possible. Instructions follow a happy path, and will get you running with all the latest and greatest features. Web Console - [Web Console Overview](https://questdb.com/docs/getting-started/web-console/overview.md): Learn how to use the QuestDB Web Console. Launch queries, create visualizations and more. Includes pictures and examples with links to the main components. - [Code Editor](https://questdb.com/docs/getting-started/web-console/code-editor.md): Write and execute SQL queries with the powerful Code Editor in QuestDB Web Console - [QuestDB AI](https://questdb.com/docs/getting-started/web-console/questdb-ai.md): Get intelligent SQL query assistance with QuestDB AI in the Web Console - [Metrics View](https://questdb.com/docs/getting-started/web-console/metrics-view.md): Monitor database performance and metrics with the Metrics View in QuestDB Web Console - [Schema Explorer](https://questdb.com/docs/getting-started/web-console/schema-explorer.md): Browse and explore your database structure with the Schema Explorer in QuestDB Web Console - [Table Details](https://questdb.com/docs/getting-started/web-console/table-details.md): Monitor real-time ingestion metrics and health status, and view metadata for tables and materialized views in QuestDB Web Console - [Result Grid](https://questdb.com/docs/getting-started/web-console/result-grid.md): View, analyze, and export query results with the interactive Result Grid in QuestDB Web Console - [Query Log](https://questdb.com/docs/getting-started/web-console/query-log.md): Monitor query execution status and performance with the Query Log in QuestDB Web Console - [Import CSV Using Web Console](https://questdb.com/docs/getting-started/web-console/import-csv.md): Import CSV files into QuestDB using the Web Console's intuitive import interface ## Ingestion Reference - [Overview](https://questdb.com/docs/ingestion/overview.md): Learn how to ingest data into QuestDB, whether through the InfluxDB Line Protocol, PostgreSQL Wire Protocol, or through a service like Apache Kafka, Apache Spark, and more. Language Clients - [Configuration String](https://questdb.com/docs/ingestion/clients/configuration-string.md): How to apply the configuration string used in multiple QuestDB clients. Demonstrates available options, caveats, and more. - [Python](https://questdb.com/docs/ingestion/clients/python.md): Get started with QuestDB, as quickly as possible. Provides instructions and examples for the Python ingestion client. Upgrade to peak time series today. - [Go](https://questdb.com/docs/ingestion/clients/go.md): Dive into QuestDB using the Go ingestion client for high-performance, insert-only operations. Unlock peak time series data ingestion. - [Java](https://questdb.com/docs/ingestion/clients/java.md): Reference for the questdb-client Maven artifact — the Java ILP ingestion client for QuestDB, covering setup, configuration, authentication, and error handling. - [Rust](https://questdb.com/docs/ingestion/clients/rust.md): Dive into QuestDB using the Rust ingestion client for high-performance, insert-only operations. Unlock peak time series data ingestion. - [Node.js](https://questdb.com/docs/ingestion/clients/nodejs.md): Get started with QuestDB using the Node.js client for efficient, high-performance insert operations. Achieve unparalleled time series data ingestion and query capabilities. - [C & C++](https://questdb.com/docs/ingestion/clients/c-and-cpp.md): Dive into QuestDB using the C & C++ ingestion client for high-performance, insert-only operations. Unlock peak time series data ingestion. - [.NET](https://questdb.com/docs/ingestion/clients/dotnet.md): Get started with QuestDB using the .NET client for efficient, high-performance insert operations. Achieve unparalleled time series data ingestion capabilities. - [Date to Timestamp](https://questdb.com/docs/ingestion/clients/date-to-timestamp-conversion.md): Python, Go, JAVA, JavaScript, C/C++, Rust, .Net, PHP, or Ruby. Message Brokers - [Ingestion from Kafka Overview](https://questdb.com/docs/ingestion/message-brokers/kafka.md): Apache Kafka and QuestDB Kafka Connector overview and guide. Thorough explanations and examples. - [Telegraf](https://questdb.com/docs/ingestion/message-brokers/telegraf.md): Learn how to use Telegraf to collect system metrics and send this data to QuestDB. - [Redpanda](https://questdb.com/docs/ingestion/message-brokers/redpanda.md): Guide for using Redpanda with QuestDB via the QuestDB Kafka connector. Also covers Redpanda Connect, a stream processing tool that can be used to build data pipelines. - [QuestDB Flink connector](https://questdb.com/docs/ingestion/message-brokers/flink.md): QuestDB ships a QuestDB Flink connector for ingesting messages from Apache Flink via the InfluxDB Line Protocol. Protocols InfluxDB Line Protocol (ILP) - [Overview](https://questdb.com/docs/ingestion/ilp/overview.md): InfluxDB line protocol reference documentation. - [Columnset Types](https://questdb.com/docs/ingestion/ilp/columnset-types.md): Describes all supported value types in InfluxDB Line Protocol columnset. - [Advanced Settings](https://questdb.com/docs/ingestion/ilp/advanced-settings.md): Syntax and guidance to create or alter your own InfluxDB Line Protocol clients. - [Java Embedded](https://questdb.com/docs/ingestion/java-embedded.md): Java embedded API reference documentation. - [CSV Import](https://questdb.com/docs/ingestion/import-csv.md): This document describes how to load CSV data and specify text loader configuration for timestamp and date parsing. It demonstrates how to do it via COPY SQL or REST. ## Query & SQL Reference - [Query & SQL Overview](https://questdb.com/docs/query/overview.md): This document shows how to work with QuestDB as a time-series database by generating dummy time-series data, inserting the data into a table, then querying and cleaning up the example data set. PostgreSQL Wire Protocol - [Overview](https://questdb.com/docs/query/pgwire/overview.md): QuestDB supports the PostgreSQL wire protocol (PGWire), allowing you to connect using standard PostgreSQL client libraries for querying data. - [Large Result Sets](https://questdb.com/docs/query/pgwire/large-result-sets.md): How to efficiently query large datasets over PGWire without running out of memory. Includes per-language examples for cursor-based fetching. - [Python](https://questdb.com/docs/query/pgwire/python.md): Python clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Python for querying data. - [Go](https://questdb.com/docs/query/pgwire/go.md): Go clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Go for querying data. - [Java](https://questdb.com/docs/query/pgwire/java.md): Java clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Java for querying data. - [Rust](https://questdb.com/docs/query/pgwire/rust.md): Rust clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with Rust for querying data. - [Node.js](https://questdb.com/docs/query/pgwire/nodejs.md): JavaScript clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with JavaScript for querying data. - [.NET](https://questdb.com/docs/query/pgwire/dotnet.md): .NET/C# clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with C# for querying data. - [PHP](https://questdb.com/docs/query/pgwire/php.md): PHP clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with PHP for querying data. - [R](https://questdb.com/docs/query/pgwire/r.md): R clients for QuestDB PGWire protocol. Learn how to use the PGWire protocol with R for querying data. - [C/C++](https://questdb.com/docs/query/pgwire/c-and-cpp.md): C and C++ clients for QuestDB over the PostgreSQL wire protocol (PGWire). Learn how to connect and query time-series data from C and C++. - [REST API](https://questdb.com/docs/query/rest-api.md): REST API reference documentation. - [Parquet Export](https://questdb.com/docs/query/export-parquet.md): This document describes how to convert or export data to Parquet. It demonstrates how to convert partitions in-place, using alter table, or how to export data as external files via COPY SQL or REST. Data Types - [Overview](https://questdb.com/docs/query/datatypes/overview.md): Data types reference documentation. - [N-Dimensional array](https://questdb.com/docs/query/datatypes/array.md): Explains the technical design and syntax to use N-dimensional arrays. - [Decimal](https://questdb.com/docs/query/datatypes/decimal.md): This document describes how to work with the decimal data type in QuestDB, including precision and scale, literal syntax, arithmetic operations, and best practices for financial and scientific calculations. - [Geospatial data](https://questdb.com/docs/query/datatypes/geohashes.md): This document describes how to work with geohashes as geospatial types in QuestDB, including hints on converting back and forth from latitude and longitude, inserting via SQL, InfluxDB line protocol, CSV, and more. SQL Syntax - [ADD USER reference](https://questdb.com/docs/query/sql/acl/add-user.md): ADD USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. ALTER - [ALTER SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/alter-service-account.md): ALTER SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. ALTER TABLE - [ALTER TABLE ADD COLUMN](https://questdb.com/docs/query/sql/alter-table-add-column.md): ALTER TABLE ADD COLUMN SQL keyword reference documentation. ALTER COLUMN - [ALTER TABLE COLUMN ADD INDEX](https://questdb.com/docs/query/sql/alter-table-alter-column-add-index.md): ADD INDEX SQL keyword. Table reference documentation. - [ALTER TABLE COLUMN CACHE | NOCACHE](https://questdb.com/docs/query/sql/alter-table-alter-column-cache.md) - [ALTER TABLE COLUMN TYPE](https://questdb.com/docs/query/sql/alter-table-change-column-type.md): ALTER TABLE COLUMN TYPE SQL keyword reference documentation. - [ALTER TABLE COLUMN DROP INDEX](https://questdb.com/docs/query/sql/alter-table-alter-column-drop-index.md): DROP INDEX SQL keyword. Table reference documentation. - [ALTER TABLE ALTER COLUMN SET PARQUET: encoding, compression, and bloom filter options](https://questdb.com/docs/query/sql/alter-table-alter-column-set-parquet.md): ALTER TABLE ALTER COLUMN SET PARQUET SQL keyword reference documentation. - [ALTER TABLE SYMBOL CAPACITY](https://questdb.com/docs/query/sql/alter-table-change-symbol-capacity.md): ALTER TABLE SYMBOL CAPACITY SQL keyword reference documentation. - [ALTER TABLE ATTACH PARTITION](https://questdb.com/docs/query/sql/alter-table-attach-partition.md): ATTACH PARTITION SQL keyword reference documentation. - [ALTER TABLE COLUMN TYPE](https://questdb.com/docs/query/sql/alter-table-change-column-type.md): ALTER TABLE COLUMN TYPE SQL keyword reference documentation. - [ALTER TABLE DEDUP ENABLE](https://questdb.com/docs/query/sql/alter-table-enable-deduplication.md): ENABLE DEDUPLICATION SQL command reference documentation. - [ALTER TABLE DEDUP DISABLE](https://questdb.com/docs/query/sql/alter-table-disable-deduplication.md): DISABLE DEDUPLICATION SQL command reference documentation. - [ALTER TABLE DETACH PARTITION](https://questdb.com/docs/query/sql/alter-table-detach-partition.md): DETACH PARTITION SQL keyword reference documentation. - [ALTER TABLE DROP COLUMN](https://questdb.com/docs/query/sql/alter-table-drop-column.md): DROP COLUMN SQL keyword reference documentation. - [ALTER TABLE DROP PARTITION](https://questdb.com/docs/query/sql/alter-table-drop-partition.md): DROP PARTITION SQL keyword reference documentation. - [ALTER TABLE RENAME COLUMN](https://questdb.com/docs/query/sql/alter-table-rename-column.md): RENAME COLUMN SQL keyword reference documentation. - [ALTER TABLE RESUME WAL](https://questdb.com/docs/query/sql/alter-table-resume-wal.md): ALTER TABLE RESUME WAL SQL keyword reference documentation. - [ALTER TABLE SET PARAM](https://questdb.com/docs/query/sql/alter-table-set-param.md): SET PARAM SQL keyword reference documentation. - [ALTER TABLE SET STORAGE POLICY](https://questdb.com/docs/query/sql/alter-table-set-storage-policy.md): ALTER TABLE SET STORAGE POLICY SQL keyword reference documentation. - [ALTER TABLE SET TTL](https://questdb.com/docs/query/sql/alter-table-set-ttl.md): ALTER TABLE SET TTL SQL keyword reference documentation. - [ALTER TABLE SET TYPE](https://questdb.com/docs/query/sql/alter-table-set-type.md): ALTER TABLE SET TYPE SQL keyword reference documentation. - [ALTER TABLE SQUASH PARTITIONS](https://questdb.com/docs/query/sql/alter-table-squash-partitions.md): ALTER TABLE SQUASH PARTITIONS SQL keyword reference documentation. - [ALTER TABLE SYMBOL CAPACITY](https://questdb.com/docs/query/sql/alter-table-change-symbol-capacity.md): ALTER TABLE SYMBOL CAPACITY SQL keyword reference documentation. ALTER MATERIALIZED VIEW ALTER COLUMN - [ALTER MATERIALIZED VIEW ADD INDEX](https://questdb.com/docs/query/sql/alter-mat-view-alter-column-add-index.md): ADD INDEX SQL keyword. Materialized Views reference documentation. - [ALTER MATERIALIZED VIEW DROP INDEX](https://questdb.com/docs/query/sql/alter-mat-view-alter-column-drop-index.md): DROP INDEX SQL keyword. Materialized View reference documentation. - [ALTER MATERIALIZED VIEW RESUME WAL](https://questdb.com/docs/query/sql/alter-mat-view-resume-wal.md): Documentation for the ALTER MATERIALIZED VIEW RESUME WAL SQL keyword in QuestDB. - [ALTER MATERIALIZED VIEW SET REFRESH](https://questdb.com/docs/query/sql/alter-mat-view-set-refresh.md): ALTER MATERIALIZED VIEW SET REFRESH SQL keyword reference documentation. - [ALTER MATERIALIZED VIEW SET REFRESH LIMIT](https://questdb.com/docs/query/sql/alter-mat-view-set-refresh-limit.md): ALTER MATERIALIZED VIEW SET REFRESH LIMIT SQL keyword reference documentation. - [ALTER MATERIALIZED VIEW SET STORAGE POLICY](https://questdb.com/docs/query/sql/alter-mat-view-set-storage-policy.md): ALTER MATERIALIZED VIEW SET STORAGE POLICY SQL keyword reference documentation. - [ALTER MATERIALIZED VIEW SET TTL](https://questdb.com/docs/query/sql/alter-mat-view-set-ttl.md): ALTER MATERIALIZED VIEW SET TTL SQL keyword reference documentation. - [ALTER USER reference](https://questdb.com/docs/query/sql/acl/alter-user.md): ALTER USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [ALTER VIEW](https://questdb.com/docs/query/sql/alter-view.md): Documentation for the ALTER VIEW SQL keyword in QuestDB. - [ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/assume-service-account.md): ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise - [BACKUP keyword](https://questdb.com/docs/query/sql/backup.md): BACKUP SQL keyword reference documentation. Applies to QuestDB Enterprise. - [CANCEL QUERY](https://questdb.com/docs/query/sql/cancel-query.md): CANCEL QUERY keyword reference documentation. - [CHECKPOINT keyword](https://questdb.com/docs/query/sql/checkpoint.md): CHECKPOINT SQL keyword reference documentation. - [COMPILE VIEW](https://questdb.com/docs/query/sql/compile-view.md): Documentation for the COMPILE VIEW SQL keyword in QuestDB. - [COPY keyword](https://questdb.com/docs/query/sql/copy.md): COPY SQL keyword reference documentation. CREATE - [CREATE GROUP reference](https://questdb.com/docs/query/sql/acl/create-group.md): CREATE GROUP SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE MATERIALIZED VIEW](https://questdb.com/docs/query/sql/create-mat-view.md): Documentation for the CREATE MATERIALIZED VIEW SQL keyword in QuestDB. - [CREATE SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/create-service-account.md): CREATE SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE TABLE reference](https://questdb.com/docs/query/sql/create-table.md): CREATE TABLE SQL keywords reference documentation. - [CREATE USER reference](https://questdb.com/docs/query/sql/acl/create-user.md): CREATE USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [CREATE VIEW](https://questdb.com/docs/query/sql/create-view.md): Documentation for the CREATE VIEW SQL keyword in QuestDB. DROP - [DROP GROUP reference](https://questdb.com/docs/query/sql/acl/drop-group.md): DROP GROUP SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP MATERIALIZED VIEW](https://questdb.com/docs/query/sql/drop-mat-view.md): Documentation for the DROP MATERIALIZED VIEW SQL keyword in QuestDB. - [DROP SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/drop-service-account.md): DROP SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP TABLE keyword](https://questdb.com/docs/query/sql/drop.md): DROP TABLE SQL keyword reference documentation. - [DROP USER reference](https://questdb.com/docs/query/sql/acl/drop-user.md): DROP USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [DROP VIEW](https://questdb.com/docs/query/sql/drop-view.md): Documentation for the DROP VIEW SQL keyword in QuestDB. - [EXIT SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/exit-service-account.md): EXIT SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [EXPLAIN keyword](https://questdb.com/docs/query/sql/explain.md): EXPLAIN SQL keyword reference documentation. GRANT - [GRANT reference](https://questdb.com/docs/query/sql/acl/grant.md): GRANT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [GRANT ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/grant-assume-service-account.md): GRANT ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [INSERT keyword](https://questdb.com/docs/query/sql/insert.md): INSERT SQL keyword reference documentation. - [REFRESH MATERIALIZED VIEW](https://questdb.com/docs/query/sql/refresh-mat-view.md): Documentation for the REFRESH MATERIALIZED VIEW SQL keyword in QuestDB. - [REINDEX](https://questdb.com/docs/query/sql/reindex.md): REINDEX SQL keyword reference documentation. - [REMOVE USER reference](https://questdb.com/docs/query/sql/acl/remove-user.md): REMOVE USER SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [RENAME TABLE keyword](https://questdb.com/docs/query/sql/rename.md): RENAME TABLE SQL keyword reference documentation. REVOKE - [REVOKE reference](https://questdb.com/docs/query/sql/acl/revoke.md): REVOKE SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. - [REVOKE ASSUME SERVICE ACCOUNT reference](https://questdb.com/docs/query/sql/acl/revoke-assume-service-account.md): REVOKE ASSUME SERVICE ACCOUNT SQL keywords reference documentation. Applies to RBAC in QuestDB Enterprise. SELECT - [SELECT keyword](https://questdb.com/docs/query/sql/select.md): SELECT SQL keyword reference documentation. - [ASOF JOIN keyword](https://questdb.com/docs/query/sql/asof-join.md): Learn how to use the powerful time-series ASOF JOIN SQL keyword from our concise and clear reference documentation. - [CASE keyword](https://questdb.com/docs/query/sql/case.md): CASE SQL keyword reference documentation. - [CAST keyword](https://questdb.com/docs/query/sql/cast.md): CAST SQL keyword reference documentation. - [DECLARE keyword](https://questdb.com/docs/query/sql/declare.md): DECLARE SQL keyword reference documentation. - [DISTINCT keyword](https://questdb.com/docs/query/sql/distinct.md): DISTINCT SQL keyword reference documentation. - [FILL keyword](https://questdb.com/docs/query/sql/fill.md): FILL SQL keyword reference documentation. - [GROUP BY keyword](https://questdb.com/docs/query/sql/group-by.md): GROUP BY SQL keyword reference documentation. - [HORIZON JOIN keyword](https://questdb.com/docs/query/sql/horizon-join.md): Reference documentation for HORIZON JOIN, a specialized time-series join for markout analysis and event impact studies in QuestDB. - [JOIN keyword](https://questdb.com/docs/query/sql/join.md): JOIN SQL keyword reference documentation. - [LATERAL JOIN keyword](https://questdb.com/docs/query/sql/lateral-join.md): Learn how to use LATERAL JOIN in QuestDB to run a subquery once per outer row, with examples for top-N per group, per-row aggregates, and dynamic filters. - [LATEST ON keyword](https://questdb.com/docs/query/sql/latest-on.md): Reference documentation for using LATEST ON keywords with examples for illustration. - [LIMIT keyword](https://questdb.com/docs/query/sql/limit.md): LIMIT SQL keyword reference documentation. - [ORDER BY keyword](https://questdb.com/docs/query/sql/order-by.md): ORDER BY SQL keyword reference documentation. - [PIVOT keyword](https://questdb.com/docs/query/sql/pivot.md): PIVOT SQL keyword reference documentation. - [SAMPLE BY keyword](https://questdb.com/docs/query/sql/sample-by.md): SAMPLE BY SQL keyword reference documentation. - [UNNEST keyword](https://questdb.com/docs/query/sql/unnest.md): Reference documentation for UNNEST, which expands arrays and JSON arrays into rows in QuestDB. - [WHERE keyword](https://questdb.com/docs/query/sql/where.md): WHERE SQL keyword reference documentation. - [WINDOW JOIN keyword](https://questdb.com/docs/query/sql/window-join.md): Learn how to use WINDOW JOIN for efficient time-based aggregation across related tables in QuestDB. - [WITH keyword](https://questdb.com/docs/query/sql/with.md): WITH SQL keyword reference documentation. - [SHOW keyword](https://questdb.com/docs/query/sql/show.md): SHOW SQL keyword reference documentation. - [SNAPSHOT keyword](https://questdb.com/docs/query/sql/snapshot.md): SNAPSHOT SQL keyword reference documentation. - [TRUNCATE TABLE keyword](https://questdb.com/docs/query/sql/truncate.md): TRUNCATE SQL keyword reference documentation. - [UNION EXCEPT INTERSECT keywords](https://questdb.com/docs/query/sql/union-except-intersect.md): UNION, EXCEPT, and INTERSECT SQL keyword reference documentation. - [UPDATE keyword](https://questdb.com/docs/query/sql/update.md): UPDATE SQL keyword reference documentation. - [VACUUM TABLE](https://questdb.com/docs/query/sql/vacuum-table.md): VACUUM TABLE SQL keyword reference documentation - [SQL execution order](https://questdb.com/docs/query/sql-execution-order.md): Execution order for SQL clauses in QuestDB. This covers the SQL keywords you may already be familiar with as well as extensions to the language that are unique to QuestDB. Functions - [Aggregate functions](https://questdb.com/docs/query/functions/aggregation.md): SQL aggregate functions for summarizing data including count, sum, avg, min, max, statistical functions, and more. - [Array functions](https://questdb.com/docs/query/functions/array.md): Array functions reference documentation. - [Binary functions](https://questdb.com/docs/query/functions/binary.md): Binary function reference documentation. - [Boolean functions](https://questdb.com/docs/query/functions/boolean.md): Boolean function reference documentation. - [Conditional functions](https://questdb.com/docs/query/functions/conditional.md): Conditional functions reference documentation. - [Timestamp, date and time functions](https://questdb.com/docs/query/functions/date-time.md): Timestamp, date and time functions reference documentation. - [Finance functions](https://questdb.com/docs/query/functions/finance.md): Market data and financial functions including l2price, mid, spread_bps, TWAP, VWAP, and wmid for order book, execution benchmarking, and pricing analysis. - [Hash Functions](https://questdb.com/docs/query/functions/hash.md): Hash (md5, sha1 and sha256) SQL functions reference documentation and explanation. - [JSON functions](https://questdb.com/docs/query/functions/json.md): JSON functions reference documentation. - [Meta functions](https://questdb.com/docs/query/functions/meta.md): Database and table metadata function reference documentation. - [Numeric functions](https://questdb.com/docs/query/functions/numeric.md): Numeric function reference documentation. - [Parquet functions](https://questdb.com/docs/query/functions/parquet.md): QuestDB Apache Parquet functions reference documentation. - [Pattern matching operators](https://questdb.com/docs/query/functions/pattern-matching.md): Pattern matching operators reference documentation. - [Random value generator](https://questdb.com/docs/query/functions/random-value-generator.md): Random value generator function reference documentation. - [Sequence generators](https://questdb.com/docs/query/functions/row-generator.md): Sequence generator function reference documentation. - [Spatial functions](https://questdb.com/docs/query/functions/spatial.md): Spatial functions for LIDAR point clouds, robotics, physical AI, and geographic coordinate systems. Includes bounding box queries, radius searches, distance calculations, and geohash operations. - [Text functions](https://questdb.com/docs/query/functions/text.md): Text function reference documentation. - [Timestamp function](https://questdb.com/docs/query/functions/timestamp.md): Timestamp function reference documentation. - [Touch function](https://questdb.com/docs/query/functions/touch.md): Touch functions reference documentation. - [Trigonometric functions](https://questdb.com/docs/query/functions/trigonometric.md): Trigonometric function reference documentation. - [UUID functions](https://questdb.com/docs/query/functions/uuid.md): UUID functions reference documentation. - [Visualization functions](https://questdb.com/docs/query/functions/visualization.md): SQL functions for rendering inline charts in query results using Unicode block characters. Window Functions - [Window Functions Overview](https://questdb.com/docs/query/functions/window-functions/overview.md): Introduction to window functions in QuestDB - perform calculations across related rows without collapsing results. - [Window Functions Reference](https://questdb.com/docs/query/functions/window-functions/reference.md): Complete reference for all window functions in QuestDB including avg, sum, ksum, count, stddev, variance, covariance, correlation, rank, dense_rank, percent_rank, row_number, lag, lead, EMA, VWEMA, and more. - [Window Function Syntax](https://questdb.com/docs/query/functions/window-functions/syntax.md): Complete syntax reference for window functions including the OVER clause, named windows with the WINDOW clause, and window inheritance. Operators - [Bitwise Operators](https://questdb.com/docs/query/operators/bitwise.md): Bitwise operators - [Comparison Operators](https://questdb.com/docs/query/operators/comparison.md): Comparison operators - [Date and Time Operators](https://questdb.com/docs/query/operators/date-time.md): Date and time operators for timestamp filtering in WHERE clauses - [Time Intervals (TICK)](https://questdb.com/docs/query/operators/tick.md): TICK (Temporal Interval Calendar Kit) - a powerful syntax for expressing complex temporal intervals in QuestDB queries. - [Exchange calendars](https://questdb.com/docs/query/operators/exchange-calendars.md): Exchange calendars filter TICK intervals to real exchange trading sessions, handling holidays, early closes, lunch breaks, and DST automatically. QuestDB Enterprise feature. - [IPv4 Operators](https://questdb.com/docs/query/operators/ipv4.md): IPv4 operators - [Logical Operators](https://questdb.com/docs/query/operators/logical.md): Logical operators - [Misc Operators](https://questdb.com/docs/query/operators/misc.md): Misc operators - [Numeric Operators](https://questdb.com/docs/query/operators/numeric.md): Numeric operators - [Operator Precedence Table](https://questdb.com/docs/query/operators/precedence.md): Operator precedence table - [Spatial Operators](https://questdb.com/docs/query/operators/spatial.md): Spatial operators - [Text Operators](https://questdb.com/docs/query/operators/text.md): Text operators ## Concepts Core Concepts - [Designated timestamp](https://questdb.com/docs/concepts/designated-timestamp.md): Complete guide to designated timestamp in QuestDB - why it exists, how it works, what it enables, limitations, best practices, and troubleshooting. - [Working with time zones](https://questdb.com/docs/concepts/timestamps-timezones.md): How to filter and convert timestamps by time zone in QuestDB using TICK syntax and conversion functions. - [Time Partitions](https://questdb.com/docs/concepts/partitions.md): Overview of QuestDB's partition system for time-series. This is an important feature that will help you craft more efficient queries. - [Symbol](https://questdb.com/docs/concepts/symbol.md): The SYMBOL data type in QuestDB stores repetitive strings efficiently, enabling fast filtering and grouping operations. - [Views](https://questdb.com/docs/concepts/views.md): Views are virtual tables defined by SQL SELECT statements. Learn how to create, query, and manage views in QuestDB for query reusability and abstraction. - [Materialized Views](https://questdb.com/docs/concepts/materialized-views.md): Materialized views are designed to maintain the speed of your queries as you scale your data. Understand how to structure your queries to take advantage of this feature. - [Deduplication](https://questdb.com/docs/concepts/deduplication.md): Deduplication prevents duplicate rows and reduces write amplification when reloading data. - [Time To Live (TTL)](https://questdb.com/docs/concepts/ttl.md): Automatic data retention in QuestDB - configure TTL to automatically drop old partitions. - [Storage Policy](https://questdb.com/docs/concepts/storage-policy.md): Automate partition lifecycle in QuestDB Enterprise - convert to Parquet locally and drop old data on a schedule. - [Write-Ahead Log (WAL)](https://questdb.com/docs/concepts/write-ahead-log.md): WAL enables concurrent writes, crash recovery, and replication for high availability. Deep Dive - [Indexes](https://questdb.com/docs/concepts/deep-dive/indexes.md): Explanation on how indexes work as well as the pros and cons that you need to be aware of when using them. - [Interval Scan](https://questdb.com/docs/concepts/deep-dive/interval-scan.md): Deep dive into interval scans - how to verify they're being used and edge cases to be aware of. - [JIT compiler](https://questdb.com/docs/concepts/deep-dive/jit-compiler.md): Documentation for usage of the just-in-time (JIT) SQL compiler in QuestDB. JIT compilation enhances the performance of the system to run SQL queries which contain filters with arithmetical expressions. - [Query tracing](https://questdb.com/docs/concepts/deep-dive/query-tracing.md): Query tracing is a feature that helps you diagnose performance issues with queries by recording each query's execution time in a system table. - [SQL extensions](https://questdb.com/docs/concepts/deep-dive/sql-extensions.md): QuestDB attempts to implement standard ANSI SQL with time-based extensions for convenience. This document describes SQL extensions in QuestDB and how users can benefit from them. - [SQL optimizer hints](https://questdb.com/docs/concepts/deep-dive/sql-optimizer-hints.md): SQL Hints allow expert users to guide the query optimizer in QuestDB when default optimization strategies are not optimal. This document describes available hints and when to use them. - [Root directory structure](https://questdb.com/docs/concepts/deep-dive/root-directory-structure.md): Contents of the folder explained. ## Architecture - [Architecture Overview](https://questdb.com/docs/architecture/questdb-architecture.md): A deep technical dive into the internal architecture, storage engine, query processing, and native integrations of QuestDB. - [QuestDB Storage Engine](https://questdb.com/docs/architecture/storage-engine.md): The QuestDB Storage Engine uses a column-oriented design to ensure high I/O performance and low latency. - [Memory Management](https://questdb.com/docs/architecture/memory-management.md): QuestDB leverages both memory mapping and explicit memory management techniques, and integrates native code for performance-critical tasks. - [Query Engine](https://questdb.com/docs/architecture/query-engine.md): The QuestDB Query Engine includes A custom SQL parser, a just-in-time (JIT) compiler, and a vectorized execution engine to process data in table page frames for better CPU use. - [Time Series Optimizations](https://questdb.com/docs/architecture/time-series-optimizations.md): QuestDB is specifically designed for time series, and it provides several optimizations such as a designated timestamp, sequential reads, materialized views, and in-memory processing. - [Observability](https://questdb.com/docs/architecture/observability.md): QuestDB provides real-time metrics, a health check endpoint, and logging to monitor performance and simplify troubleshooting. ## Configuration - [Overview](https://questdb.com/docs/configuration/overview.md): Server configuration keys reference documentation. - [Command-line options](https://questdb.com/docs/configuration/command-line-options.md): Command-line options reference documentation. ## Security - [Role-Based Access Control (RBAC)](https://questdb.com/docs/security/rbac.md): Granular access control from database level down to individual columns and rows. Learn how to secure your QuestDB instance with users, groups, and fine-grained permissions. - [OpenID Connect (OIDC)](https://questdb.com/docs/security/oidc.md): Configure OpenID Connect (OIDC) integration with external Identity Providers for SSO authentication in QuestDB Enterprise Web Console. - [TLS Encryption](https://questdb.com/docs/security/tls.md): Details and resources which describe how to configure TLS encryption for available network interfaces. ## High Availability - [Overview](https://questdb.com/docs/high-availability/overview.md): Learn how QuestDB Enterprise replication works, its benefits, and architecture. - [Setup Guide](https://questdb.com/docs/high-availability/setup.md): Step-by-step guide to setting up QuestDB Enterprise replication with object storage, primary and replica nodes. - [Tuning](https://questdb.com/docs/high-availability/tuning.md): Tune QuestDB replication for lower latency or reduced network costs. - [WAL Cleanup](https://questdb.com/docs/high-availability/wal-cleanup.md): Configure automatic cleanup of replicated WAL data in object storage to control storage costs. ## Operations - [Backup and restore](https://questdb.com/docs/operations/backup.md): Instructions and advice on performing backup/restore operations on QuestDB - [Logging and metrics](https://questdb.com/docs/operations/logging-metrics.md): Configure and understand QuestDB logging and metrics, including log levels, configuration options, and Prometheus integration. - [Monitoring and alerting](https://questdb.com/docs/operations/monitoring-alerting.md): Monitor QuestDB health and detect table issues like suspended WAL, memory pressure, and slow queries. - [Data retention](https://questdb.com/docs/operations/data-retention.md): How to employ a data retention strategy to delete old data and save disk space - [How UPDATE works](https://questdb.com/docs/operations/updating-data.md): How the UPDATE statement is implemented in QuestDB. - [Alternatives to UPDATE](https://questdb.com/docs/operations/modifying-data.md): Append-oriented patterns for modifying data in QuestDB without using UPDATE. - [Automating QuestDB Tasks](https://questdb.com/docs/operations/task-automation.md): Learn how to automate QuestDB tasks using the REST HTTP API, or one of our recommended workflow orchestrators. ## Deployment - [Using Docker with QuestDB](https://questdb.com/docs/deployment/docker.md): Guide showing how to use QuestDB with Docker. This also covers how to import and persist QuestDB data in a docker container. - [Run QuestDB on Kubernetes](https://questdb.com/docs/deployment/kubernetes.md): This document describes how to deploy QuestDB using a Kubernetes cluster by means of official Helm charts maintained by the QuestDB project - [Launch QuestDB with systemd](https://questdb.com/docs/deployment/systemd.md): This document describes how to launch QuestBD using systemd. - [Deploying QuestDB on AWS](https://questdb.com/docs/deployment/aws.md): Deploy QuestDB on Amazon Web Services using EC2, with instance sizing, storage, and networking recommendations. - [Deploying QuestDB on Azure](https://questdb.com/docs/deployment/azure.md): Deploy QuestDB on Microsoft Azure using Virtual Machines, with instance sizing, storage, and networking recommendations. - [Deploying to Google Cloud Platform (GCP)](https://questdb.com/docs/deployment/gcp.md): This document explains what to hardware to use, and how to provision QuestDB on Google Cloud Platform (GCP). - [Deploying to Digital Ocean](https://questdb.com/docs/deployment/digital-ocean.md): This document describes how to launch the official AWS Marketplace AMI with QuestDB installed and how to access and secure the instance on Amazon Web Services - [Deploying to Hetzner Cloud](https://questdb.com/docs/deployment/hetzner.md): This document explains what hardware to use, and how to provision QuestDB on Hetzner Cloud with storage volumes and automated backups. - [ZFS Compression](https://questdb.com/docs/deployment/compression-zfs.md): How to install ZFS and enable system-level compression for QuestDB. ## Integrations - [Third-Party Tools Overview](https://questdb.com/docs/integrations/overview.md): QuestDB integrates well with a number of third-party tools. This page lists some of the most popular integrations. Visualization - [Grafana](https://questdb.com/docs/integrations/visualization/grafana.md): Guide for fastest, high performance time-series data visualizations with QuestDB and Grafana. - [qStudio](https://questdb.com/docs/integrations/visualization/qstudio.md): Guide for querying QuestDB using qStudio - [Superset](https://questdb.com/docs/integrations/visualization/superset.md): Guide for using Superset with QuestDB - [PowerBI](https://questdb.com/docs/integrations/visualization/powerbi.md): Guide for using PowerBI with QuestDB. Use the top performing QuestDB database to build your PowerBI dashboards. - [Embeddable](https://questdb.com/docs/integrations/visualization/embeddable.md): Embeddable is a developer toolkit for building fast, interactive, fully-custom analytics experiences directly into your app. Data Processing - [Pandas](https://questdb.com/docs/integrations/data-processing/pandas.md): Guide for using Pandas with QuestDB via the official QuestDB Python client library - [Polars](https://questdb.com/docs/integrations/data-processing/polars.md): Guide for using Polars with QuestDB - [Apache Spark and Time-Series Analytics](https://questdb.com/docs/integrations/data-processing/spark.md): This document describes how to load data from QuestDB to Apache Spark for large-scale data engineering. Orchestration - [Apache Airflow](https://questdb.com/docs/integrations/orchestration/airflow.md): Learn how to use Apache Airflow to automate QuestDB workflows. - [Dagster](https://questdb.com/docs/integrations/orchestration/dagster.md): Learn how to use Dagster to automate QuestDB workflows. Other Tools - [Prometheus monitoring and alerting](https://questdb.com/docs/integrations/other/prometheus.md): This document describes how to monitor QuestDB metrics such as memory consumption using the Prometheus metrics endpoint, and how to log alerts to Prometheus Alertmanager. - [SQLAlchemy](https://questdb.com/docs/integrations/other/sqlalchemy.md): Guide for using SQLAlchemy with QuestDB - [MindsDB](https://questdb.com/docs/integrations/other/mindsdb.md): Guide for getting started in Machine Learning with MindsDB and QuestDB - [Databento](https://questdb.com/docs/integrations/other/databento.md): Guide to ingest and analyze live multi-stream market data from Databento using QuestDB and Grafana. - [Cube](https://questdb.com/docs/integrations/other/cube.md): Guide for QuestDB and Cube integration. - [Ignition 8.3](https://questdb.com/docs/integrations/other/ignition.md): Guide for using Ignition 8.3 with QuestDB - [Integrating Airbyte with QuestDB](https://questdb.com/docs/integrations/other/airbyte.md): Learn how to use Airbyte to collect data from various sources and send it to QuestDB for efficient time-series data storage and analysis. ## Tutorials & Cookbook Post-Trade Analysis - [Overview](https://questdb.com/docs/cookbook/sql/finance/post-trade-overview.md): Post-trade and transaction cost analysis (TCA) recipes for FX and equities in QuestDB — slippage, markout curves, implementation shortfall, venue scoring, and VPIN using ASOF JOIN, HORIZON JOIN, PIVOT, and window functions. - [Slippage per fill](https://questdb.com/docs/cookbook/sql/finance/slippage.md): Measure execution slippage against the prevailing mid price and top-of-book for every trade fill - [Aggregated slippage by venue and counterparty](https://questdb.com/docs/cookbook/sql/finance/slippage-aggregated.md): Aggregate execution slippage by ECN, counterparty, and passive/aggressive to compare venue and counterparty quality - [Post-trade markout analysis](https://questdb.com/docs/cookbook/sql/finance/markout.md): Measure post-trade price reversion using HORIZON JOIN to evaluate execution quality and detect adverse selection - [Last look detection](https://questdb.com/docs/cookbook/sql/finance/last-look.md): Detect last-look behavior using millisecond-granularity markout analysis with HORIZON JOIN - [Implementation shortfall decomposition](https://questdb.com/docs/cookbook/sql/finance/implementation-shortfall.md): Decompose total execution cost into effective spread, permanent impact, and temporary impact using HORIZON JOIN and PIVOT - [Order-level implementation shortfall](https://questdb.com/docs/cookbook/sql/finance/implementation-shortfall-order.md): Calculate total implementation shortfall per order by comparing volume-weighted execution price against arrival mid - [ECN scorecard](https://questdb.com/docs/cookbook/sql/finance/ecn-scorecard.md): Compare venue fill quality with a single dashboard query combining spread, slippage, fill size, and passive ratio - [VPIN (Volume-synchronized Probability of Informed Trading)](https://questdb.com/docs/cookbook/sql/finance/vpin.md): Estimate the probability of informed trading using volume-bucketed order flow imbalance Cookbook - [Cookbook overview](https://questdb.com/docs/cookbook.md): Quick recipes and practical examples for common QuestDB tasks and queries - [Demo data schema](https://questdb.com/docs/cookbook/demo-data-schema.md): Schema and structure of the FX market data and cryptocurrency trades available on demo.questdb.io SQL Recipes Capital Markets Price-Based Indicators - [OHLC bars](https://questdb.com/docs/cookbook/sql/finance/ohlc.md): Generate OHLC (Open, High, Low, Close) bars from tick data using SAMPLE BY - [Volume weighted average price (VWAP)](https://questdb.com/docs/cookbook/sql/finance/vwap.md): Calculate cumulative volume weighted average price using window functions for intraday trading analysis - [Time-weighted average price (TWAP)](https://questdb.com/docs/cookbook/sql/finance/twap.md): Calculate the time-weighted average price using the native twap() aggregate function for execution benchmarking, fair value reference, and algorithmic trading analysis. - [Bollinger bands](https://questdb.com/docs/cookbook/sql/finance/bollinger-bands.md): Calculate Bollinger Bands using window functions for volatility analysis and mean reversion trading strategies - [Bollinger BandWidth](https://questdb.com/docs/cookbook/sql/finance/bollinger-bandwidth.md): Calculate Bollinger BandWidth to measure volatility and identify squeeze setups for potential breakouts Momentum Indicators - [RSI (Relative Strength Index)](https://questdb.com/docs/cookbook/sql/finance/rsi.md): Calculate the Relative Strength Index momentum oscillator to identify overbought and oversold conditions - [MACD (Moving Average Convergence Divergence)](https://questdb.com/docs/cookbook/sql/finance/macd.md): Calculate MACD indicator with signal line and histogram for trend-following momentum analysis - [Stochastic Oscillator](https://questdb.com/docs/cookbook/sql/finance/stochastic.md): Calculate the Stochastic Oscillator to identify overbought and oversold conditions based on price position within recent range - [Rate of Change (ROC)](https://questdb.com/docs/cookbook/sql/finance/rate-of-change.md): Calculate Rate of Change momentum indicator to measure percentage price change over a period Volatility Indicators - [ATR (Average True Range)](https://questdb.com/docs/cookbook/sql/finance/atr.md): Calculate Average True Range to measure market volatility for position sizing and stop-loss placement - [Rolling standard deviation](https://questdb.com/docs/cookbook/sql/finance/rolling-stddev.md): Calculate rolling standard deviation using window functions - [Donchian Channels](https://questdb.com/docs/cookbook/sql/finance/donchian-channels.md): Calculate Donchian Channels to identify breakouts and trading ranges using highest high and lowest low - [Keltner Channels](https://questdb.com/docs/cookbook/sql/finance/keltner-channels.md): Calculate Keltner Channels using EMA and ATR for volatility-based support and resistance levels - [Realized volatility](https://questdb.com/docs/cookbook/sql/finance/realized-volatility.md): Calculate realized volatility from historical returns for risk measurement and comparison to implied volatility Volume & Order Flow - [OBV (On-Balance Volume)](https://questdb.com/docs/cookbook/sql/finance/obv.md): Calculate On-Balance Volume to track cumulative buying and selling pressure using volume flow - [Volume profile](https://questdb.com/docs/cookbook/sql/finance/volume-profile.md): Calculate volume profile by grouping trades into price bins - [Volume spike detection](https://questdb.com/docs/cookbook/sql/finance/volume-spike.md): Detect volume spikes by comparing current volume against previous volume using LAG - [Aggressor volume imbalance](https://questdb.com/docs/cookbook/sql/finance/aggressor-volume-imbalance.md): Calculate buy vs sell aggressor volume imbalance for order flow analysis - [VPIN (Volume-synchronized Probability of Informed Trading)](https://questdb.com/docs/cookbook/sql/finance/vpin.md): Estimate the probability of informed trading using volume-bucketed order flow imbalance Risk Metrics - [Maximum drawdown](https://questdb.com/docs/cookbook/sql/finance/maximum-drawdown.md): Calculate maximum drawdown to measure the largest peak-to-trough decline for risk assessment Market Microstructure - [Bid-ask spread](https://questdb.com/docs/cookbook/sql/finance/bid-ask-spread.md): Calculate bid-ask spread metrics for transaction cost analysis and liquidity measurement - [Gamma scalping signal](https://questdb.com/docs/cookbook/sql/finance/gamma-scalping-signal.md): Assess gamma scalping conditions by comparing realized volatility against bid-ask spread cost - [Liquidity comparison across instruments](https://questdb.com/docs/cookbook/sql/finance/liquidity-comparison.md): Compare liquidity across multiple instruments using L2Price to calculate effective spreads at different order sizes Market Breadth - [TICK and TRIN indicators](https://questdb.com/docs/cookbook/sql/finance/tick-trin.md): Calculate TICK and TRIN (ARMS Index) for market breadth analysis Math Utilities - [Calculate compound interest](https://questdb.com/docs/cookbook/sql/finance/compound-interest.md): Calculate compound interest over time using POWER and window functions - [Cumulative product for random walk](https://questdb.com/docs/cookbook/sql/finance/cumulative-product.md): Calculate cumulative product to simulate stock price paths from daily returns - [Log returns](https://questdb.com/docs/cookbook/sql/finance/log-returns.md): Compute log returns between consecutive price observations for financial analysis Time-Series Patterns - [Elapsed time between rows](https://questdb.com/docs/cookbook/sql/time-series/elapsed-time.md): Calculate the time elapsed between consecutive rows using lag() and datediff() - [Force a designated timestamp](https://questdb.com/docs/cookbook/sql/time-series/force-designated-timestamp.md): Learn how to explicitly set a designated timestamp column in QuestDB queries using the TIMESTAMP keyword - [Get latest N records per partition](https://questdb.com/docs/cookbook/sql/time-series/latest-n-per-partition.md): Retrieve the most recent N rows for each distinct value using window functions and filtering - [Calculate sessions and elapsed time](https://questdb.com/docs/cookbook/sql/time-series/session-windows.md): Identify sessions by detecting state changes and calculate elapsed time between events using window functions - [Query last N minutes of activity](https://questdb.com/docs/cookbook/sql/time-series/latest-activity-window.md): Get rows from the last N minutes of recorded activity using subqueries with LIMIT -1 - [Filter data by week number](https://questdb.com/docs/cookbook/sql/time-series/filter-by-week.md): Query data by ISO week number using week_of_year() or dateadd() for better performance - [Distribute discrete values across time intervals](https://questdb.com/docs/cookbook/sql/time-series/distribute-discrete-values.md): Spread cumulative measurements across time intervals using sessions and window functions - [Query with epoch timestamps](https://questdb.com/docs/cookbook/sql/time-series/epoch-timestamps.md): Use epoch timestamps for timestamp filtering in QuestDB - [Right interval bound with SAMPLE BY](https://questdb.com/docs/cookbook/sql/time-series/sample-by-interval-bounds.md): Shift SAMPLE BY timestamps to use right interval bound instead of left bound - [Remove outliers from candle data](https://questdb.com/docs/cookbook/sql/time-series/remove-outliers.md): Filter outliers in OHLC candles using window functions to compare against moving averages - [Fill missing intervals with value from another column](https://questdb.com/docs/cookbook/sql/time-series/fill-from-one-column.md): Use window functions to propagate values from one column to fill multiple columns in SAMPLE BY queries - [FILL PREV with historical values](https://questdb.com/docs/cookbook/sql/time-series/fill-prev-with-history.md): Use FILL(PREV) with a filler row to carry historical values into a filtered time interval - [FILL on keyed queries with arbitrary intervals](https://questdb.com/docs/cookbook/sql/time-series/fill-keyed-arbitrary-interval.md): Use FILL with keyed queries and any FILL strategy across arbitrary time intervals by sandwiching data with null boundary rows - [Join strategies for sparse sensor data](https://questdb.com/docs/cookbook/sql/time-series/sparse-sensor-data.md): Compare CROSS JOIN, LEFT JOIN, and ASOF JOIN strategies for combining data from sensors stored in separate tables Advanced SQL - [Access rows before and after current row](https://questdb.com/docs/cookbook/sql/advanced/rows-before-after-value-match.md): Use LAG and LEAD window functions to access values from surrounding rows - [Find local minimum and maximum](https://questdb.com/docs/cookbook/sql/advanced/local-min-max.md): Find the minimum and maximum values within a time range around each row - [Top N plus others row](https://questdb.com/docs/cookbook/sql/advanced/top-n-plus-others.md): Group query results into top N rows plus an aggregated "Others" row using rank() and CASE expressions - [Pivot with "Others" column](https://questdb.com/docs/cookbook/sql/advanced/pivot-with-others.md): Pivot specific values into columns while aggregating remaining values into an "Others" column using CASE statements - [Unpivoting query results](https://questdb.com/docs/cookbook/sql/advanced/unpivot-table.md): Convert wide-format data to long format using UNION ALL - [Sankey and funnel diagrams](https://questdb.com/docs/cookbook/sql/advanced/sankey-funnel.md): Create session-based analytics for Sankey diagrams and conversion funnels - [Multiple conditional aggregates](https://questdb.com/docs/cookbook/sql/advanced/conditional-aggregates.md): Calculate multiple conditional aggregates in a single query using CASE expressions - [General and sampled aggregates](https://questdb.com/docs/cookbook/sql/advanced/general-and-sampled-aggregates.md): Combine overall statistics with time-bucketed aggregates using CROSS JOIN - [Consistent histogram buckets](https://questdb.com/docs/cookbook/sql/advanced/consistent-histogram-buckets.md): Generate histogram data with fixed bucket boundaries for consistent distribution analysis - [Create arrays from string literals](https://questdb.com/docs/cookbook/sql/advanced/array-from-string.md): Cast string literals to array types in QuestDB Integrations - [Collect OPC-UA data with Telegraf in dense format](https://questdb.com/docs/cookbook/integrations/opcua-dense-format.md): Configure Telegraf to merge sparse OPC-UA metrics into dense rows for efficient storage and querying in QuestDB Grafana - [Query multiple tables dynamically in Grafana](https://questdb.com/docs/cookbook/integrations/grafana/dynamic-table-queries.md): Use Grafana variables to dynamically query multiple tables with the same schema for time-series visualization - [Configure read-only user for Grafana](https://questdb.com/docs/cookbook/integrations/grafana/read-only-user.md): Set up a read-only PostgreSQL user for Grafana dashboards while maintaining admin access for DDL operations - [Grafana variable dropdown with name and value](https://questdb.com/docs/cookbook/integrations/grafana/variable-dropdown.md): Create Grafana variable dropdowns that display one value but use another in queries using regex filters - [Overlay two time series with time shift](https://questdb.com/docs/cookbook/integrations/grafana/overlay-timeshift.md): Overlay yesterday's and today's data on the same Grafana chart using time shift Programmatic - [Configure TLS certificate authorities](https://questdb.com/docs/cookbook/programmatic/tls-ca-configuration.md): Configure TLS certificate authority validation for QuestDB clients PHP - [Insert data from PHP using ILP](https://questdb.com/docs/cookbook/programmatic/php/inserting-ilp.md): Send time-series data from PHP to QuestDB using the InfluxDB Line Protocol Ruby - [Insert data from Ruby using ILP](https://questdb.com/docs/cookbook/programmatic/ruby/inserting-ilp.md): Send time-series data from Ruby to QuestDB using the InfluxDB Line Protocol over HTTP C++ - [Handle missing columns in C++ client](https://questdb.com/docs/cookbook/programmatic/cpp/missing-columns.md): Send rows with optional columns using the QuestDB C++ client by conditionally calling column methods Operations - [Configure QuestDB with Docker Compose](https://questdb.com/docs/cookbook/operations/docker-compose-config.md): Override QuestDB configuration parameters using environment variables in Docker Compose - [Store QuestDB metrics in QuestDB](https://questdb.com/docs/cookbook/operations/store-questdb-metrics.md): Scrape QuestDB Prometheus metrics using Telegraf and store them in QuestDB - [Import CSV with millisecond timestamps](https://questdb.com/docs/cookbook/operations/csv-import-milliseconds.md): Import CSV files with epoch millisecond timestamps into QuestDB - [TLS with PgBouncer for QuestDB](https://questdb.com/docs/cookbook/operations/tls-pgbouncer.md): Configure PgBouncer to provide TLS termination for QuestDB PostgreSQL connections - [Copy data between QuestDB instances](https://questdb.com/docs/cookbook/operations/copy-data-between-instances.md): Copy a subset of data from production to development QuestDB instances - [Query performance histogram](https://questdb.com/docs/cookbook/operations/query-times-histogram.md): Create histogram of query execution times using _query_trace table - [Optimize disk and memory usage with many tables](https://questdb.com/docs/cookbook/operations/optimize-many-tables.md): Reduce memory and disk usage when running QuestDB with many tables by adjusting memory allocation and disk chunk sizes - [Check transaction applied after ingestion](https://questdb.com/docs/cookbook/operations/check-transaction-applied.md): Verify that all ingested rows to a WAL table are visible for queries in QuestDB - [Show parameters with non-default values](https://questdb.com/docs/cookbook/operations/show-non-default-params.md): List all QuestDB configuration parameters that have been modified from their default values - [Order Book Analytics](https://questdb.com/docs/tutorials/order-book.md): Learn how to store and analyze order book data using 2D arrays in QuestDB, including mid-price calculation, spread analysis, and volume-weighted metrics. - [Ingest L2 order book data](https://questdb.com/blog/level-2-order-book-data-into-questdb-arrays/) - [OHLC with materialized views](https://questdb.com/blog/how-to-create-a-materialized-view/) - [Migrate from InfluxDB](https://questdb.com/docs/tutorials/influxdb-migration.md): This document describes how to migrate to QuestDB from InfluxDB using your existing InfluxDB clients. - [Blog Tutorials](https://questdb.com/blog/?tag=tutorial) ## Troubleshooting - [FAQ](https://questdb.com/docs/troubleshooting/faq.md): FAQ for QuestDB troubleshooting. - [Profiling](https://questdb.com/docs/troubleshooting/profiling.md): How to profile QuestDB using async-profiler to diagnose performance issues and analyze CPU usage, memory allocation, and other runtime behaviors. - [List of OS error codes](https://questdb.com/docs/troubleshooting/os-error-codes.md): List of OS error codes that may be reported by QuestDB running on Linux and Windows. - [List of QuestDB Error Codes](https://questdb.com/docs/troubleshooting/error-codes.md): A list of error codes that QuestDB may generate, with explanations and suggested actions. - [Release Notes](https://questdb.com/release-notes)