| --- | |
| { | |
| "title": "Data Querying", | |
| "language": "en", | |
| "description": "Navigate Apache Doris query capabilities by use case: SQL compatibility, multi-table joins, aggregation analytics, semi-structured data querying, and user-defined functions." | |
| } | |
| --- | |
| import GettingStartedCard from '@site/src/components/getting-started-card/getting-started-card'; | |
| # Data Querying | |
| Apache Doris supports standard SQL with strong MySQL compatibility, and on top of that provides high-performance join queries, a rich set of analytic functions, semi-structured data access, and user-defined functions. Choose the documentation that matches your scenario below. | |
| ## SQL Compatibility | |
| <div className="cards-grid"> | |
| <GettingStartedCard | |
| title="MySQL Compatibility" | |
| description="A quick reference to the differences between Doris and MySQL: covers data types, DDL/DML syntax, SQL functions, and key SQL Mode differences." | |
| link="mysql-compatibility" | |
| /> | |
| </div> | |
| ## Multi-Table Joins | |
| <div className="cards-grid"> | |
| <GettingStartedCard | |
| title="Joins (JOIN)" | |
| description="JOIN types such as INNER / LEFT / RIGHT / FULL / SEMI / ANTI, along with four distributed JOIN implementations: Broadcast, Shuffle, Bucket Shuffle, and Colocate." | |
| link="join" | |
| /> | |
| <GettingStartedCard | |
| title="ASOF JOIN for Time-Series Nearest Match" | |
| description="For each row in the left table, find the nearest row in the right table along a time direction, enabling time-series alignment without window functions." | |
| link="asof-join" | |
| /> | |
| <GettingStartedCard | |
| title="Subqueries" | |
| description="Syntax, restrictions, and Mark Join handling for scalar, non-scalar, correlated, and uncorrelated subqueries." | |
| link="subquery" | |
| /> | |
| <GettingStartedCard | |
| title="Common Table Expressions (CTE)" | |
| description="Define temporary result sets with the WITH clause, with support for nested and recursive CTEs, suitable for hierarchy traversal, graph traversal, and similar scenarios." | |
| link="cte" | |
| /> | |
| </div> | |
| ## Aggregation and Analytics | |
| <div className="cards-grid"> | |
| <GettingStartedCard | |
| title="Multi-Dimensional Aggregation Analytics" | |
| description="Use ROLLUP, CUBE, and GROUPING SETS to perform multi-dimensional aggregation analytics in a single SQL statement." | |
| link="multi-dimensional-analytics" | |
| /> | |
| <GettingStartedCard | |
| title="Analytic Functions (Window Functions)" | |
| description="Use the OVER clause to partition and window result sets, supporting ranking, cumulative sums, moving averages, year-over-year and quarter-over-quarter comparisons, and more." | |
| link="window-function" | |
| /> | |
| </div> | |
| ## Semi-Structured and Complex Data | |
| <div className="cards-grid"> | |
| <GettingStartedCard | |
| title="Querying Complex Types" | |
| description="Query complex types such as Array, Map, Struct, and JSON, and process semi-structured data with dedicated SQL functions." | |
| link="complex-type" | |
| /> | |
| <GettingStartedCard | |
| title="Column-to-Row (Lateral View)" | |
| description="Use LATERAL VIEW with generator functions such as EXPLODE to expand a single row into multiple rows, enabling column-to-row SQL queries." | |
| link="lateral-view" | |
| /> | |
| </div> | |
| ## User-Defined Functions (UDF) | |
| <div className="cards-grid"> | |
| <GettingStartedCard | |
| title="Java UDF / UDAF / UDWF / UDTF" | |
| description="Write UDF/UDAF/UDWF/UDTF user-defined functions in Java, including type mapping, registration syntax, best practices, and examples." | |
| link="udf/java-user-defined-function" | |
| /> | |
| <GettingStartedCard | |
| title="Python UDF / UDAF / UDWF / UDTF" | |
| description="Write UDF/UDAF/UDTF in Python: covers creation, vectorization, environment configuration, and common troubleshooting." | |
| link="udf/python-user-defined-function" | |
| /> | |
| <GettingStartedCard | |
| title="Alias Functions" | |
| description="Register a new signature for a function or expression fragment with CREATE ALIAS FUNCTION to improve migration compatibility and simplify writing complex queries." | |
| link="udf/alias-function" | |
| /> | |
| </div> |