DESCRIBE QUERY

Description

The DESCRIBE QUERY statement is used to return the metadata of output of a query. A shorthand DESC may be used instead of DESCRIBE to describe the query output.

Syntax

{DESC | DESCRIBE} [QUERY] input_statement

Parameters

QUERY
This clause is optional and may be omitted.
input_statement
Specifies a result set producing statement and may be one of the following:
  • a SELECT statement
  • a CTE(Common table expression) statement
  • an INLINE TABLE statement
  • a TABLE statement
  • a FROM statement
Please refer to select-statement for a detailed syntax of the query parameter.

Examples

-- Create table `person`
CREATE TABLE person (name STRING , age INT COMMENT 'Age column', address STRING);

-- Returns column metadata information for a simple select query
DESCRIBE QUERY select age, sum(age) FROM person GROUP BY age;
  +--------+---------+----------+
  |col_name|data_type|comment   |
  +--------+---------+----------+
  |age     |int      |Age column|
  |sum(age)|bigint   |null      |
  +--------+---------+----------+

-- Returns column metadata information for common table experession (`CTE`).
DESCRIBE QUERY WITH all_names_cte
  AS (SELECT name from person) SELECT * FROM all_names_cte;
  +--------+---------+-------+
  |col_name|data_type|comment|
  +--------+---------+-------+
  |name    |string   |null   |
  +--------+---------+-------+

-- Returns column metadata information for a inline table.
DESC QUERY VALUES(100, 'John', 10000.20D) AS employee(id, name, salary);
  +--------+---------+-------+
  |col_name|data_type|comment|
  +--------+---------+-------+
  |id      |int      |null   |
  |name    |string   |null   |
  |salary  |double   |null   |
  +--------+---------+-------+

-- Returns column metadata information for `TABLE` statement.
DESC QUERY TABLE person;
  +--------+---------+----------+
  |col_name|data_type|comment   |
  +--------+---------+----------+
  |name    |string   |null      |
  |age     |int      |Age column|
  |address |string   |null      |
  +--------+---------+----------+

-- Returns column metadata information for a `FROM` statement.
-- `QUERY` clause is optional and can be omitted.
DESCRIBE FROM person SELECT age;
  +--------+---------+----------+
  |col_name|data_type|comment   |
  +--------+---------+----------+
  |age     |int      |Age column|
  +--------+---------+----------+