TDV Adapter for Amazon Athena

Build 22.0.8462

SELECT Statements

A SELECT statement can consist of the following basic clauses.

  • SELECT
  • INTO
  • FROM
  • JOIN
  • WHERE
  • GROUP BY
  • HAVING
  • UNION
  • ORDER BY
  • LIMIT

SELECT Syntax

The following syntax diagram outlines the syntax supported by the Amazon Athena adapter:

SELECT {
  [ TOP <numeric_literal> | DISTINCT ]
  { 
    * 
    | { 
        <expression> [ [ AS ] <column_reference> ] 
        | { <table_name> | <correlation_name> } .* 
      } [ , ... ] 
  }
  [ INTO csv:// [ filename= ] <file_path> [ ;delimiter=tab ] ]
  { 
    FROM <table_reference> [ [ AS ] <identifier> ] 
  } [ , ... ]
  [ [ 
      INNER | { { LEFT | RIGHT | FULL  } [ OUTER ] }  
    ] JOIN <table_reference> [ ON <search_condition> ] [ [ AS ] <identifier> ] 
  ] [ ... ] 
  [ WHERE <search_condition> ]
  [ GROUP BY <column_reference> [ , ... ]
  [ HAVING <search_condition> ]
  [ UNION  [ ALL ] <select_statement> ]
  [ 
    ORDER BY 
    <column_reference> [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
  ]
  [
    LIMIT <expression>
    [ 
      { OFFSET | , }
      <expression> 
    ]
  ] 
}

  <expression> ::=
    | <column_reference>
    | @ <parameter> 
    | ?
    | COUNT( * | { [ DISTINCT ] <expression> } )
    | { AVG | MAX | MIN | SUM | COUNT } ( <expression> ) 
    | NULLIF ( <expression> , <expression> ) 
    | COALESCE ( <expression> , ... ) 
    | CASE <expression>
        WHEN { <expression> | <search_condition> } THEN { <expression> | NULL } [ ... ]
    [ ELSE { <expression> | NULL } ]
      END 
    | <literal>
    | <sql_function> 

  <search_condition> ::= 
    {
      <expression> { = | > | < | >= | <= | <> | != | LIKE | NOT LIKE | IN | NOT IN | IS NULL | IS NOT NULL | ANY | ALL | EXISTS | NOT EXISTS | CONTAINS | NOT CONTAINS | BETWEEN | AND | OR } [ <expression> ]
    } [ { AND | OR } ... ]

Examples

  1. Return all columns:
    SELECT * FROM [AwsDataCatalog].[sampledb].Customers
  2. Rename a column:
    SELECT "TotalDue" AS MY_TotalDue FROM [AwsDataCatalog].[sampledb].Customers
  3. Cast a column's data as a different data type:
    SELECT CAST(AnnualRevenue AS VARCHAR) AS Str_AnnualRevenue FROM [AwsDataCatalog].[sampledb].Customers
  4. Search data:
    SELECT * FROM [AwsDataCatalog].[sampledb].Customers WHERE CustomerId = '12345'
  5. The Amazon Athena APIs support the following operators in the WHERE clause: =, >, <, >=, <=, <>, !=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL, ANY, ALL, EXISTS, NOT EXISTS, CONTAINS, NOT CONTAINS, BETWEEN, AND, OR.
    SELECT * FROM [AwsDataCatalog].[sampledb].Customers WHERE CustomerId = '12345';
  6. Return the number of items matching the query criteria:
    SELECT COUNT(*) AS MyCount FROM [AwsDataCatalog].[sampledb].Customers 
  7. Return the number of unique items matching the query criteria:
    SELECT COUNT(DISTINCT TotalDue) FROM [AwsDataCatalog].[sampledb].Customers 
  8. Return the unique items matching the query criteria:
    SELECT DISTINCT TotalDue FROM [AwsDataCatalog].[sampledb].Customers 
  9. Summarize data:
    SELECT TotalDue, MAX(AnnualRevenue) FROM [AwsDataCatalog].[sampledb].Customers  GROUP BY TotalDue
    See Aggregate Functions for details.
  10. Retrieve data from multiple tables.
    SELECT Orders.OrderDate, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
    See JOIN Queries for details.
  11. Sort a result set in ascending order:
    SELECT Name, TotalDue FROM [AwsDataCatalog].[sampledb].Customers  ORDER BY TotalDue ASC

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8462