Using SQL Sheets
SQL worksheets give you the ability to write SQL queries directly in a Workbook. Use SQL worksheets to combine processes that might take several steps using the traditional interface.
Using SQL Worksheets#
Open a SQL worksheet#
Open a Workbook, select Sheets from the menu bar and select Add SQL Sheet.
A new worksheet is added to your Workbook with a multiline SQL editor instead of a formula editor.
Write supported SQL syntax to create a query in Spectrum's SQL editor like you would when using an actual SQL database.
To activate the query, click the check box on the right side of the SQL editor.
SQL Editor Features#
Supported features#
The Spectrum SQL editor interface emulates structured query language. The following SQL features are available for use within a Spectrum SQL worksheet:
Title | SQL command |
---|---|
Logic functions | AND, OR |
Comparison functions | value1 = value2, value1 <> value2, value1 > value2, value1 >= value2, value1 < value2, value1 <= value2, value IS NULL, value IS NOT NULL, value1 IS DISTINCT FROM value2, value1 IS NOT DISTINCT FROM value2, value1 BETWEEN value2 AND value3, value1 NOT BETWEEN value2 AND value3, string1 LIKE string2 [ ESCAPE string3 ], string1 NOT LIKE string2 [ ESCAPE string3 ], string1 SIMILAR TO string2 [ ESCAPE string3 ], string1 NOT SIMILAR TO string2 [ ESCAPE string3 ], value IN (value [, value]*), value NOT IN (value [, value]*), value IN (sub-query), value NOT IN (sub-query), EXISTS (sub-query), NOT EXISTS (sub-query) |
SQL logic | boolean1 OR boolean2, boolean1 AND boolean2, NOT boolean, boolean IS FALSE, boolean IS TRUE, boolean IS NOT TRUE, boolean IS UNKNOWN, boolean IS NOT UNKNOWN |
Numeric functions | + numeric, - numeric, numeric1 + numeric2, numeric1 - numeric2, numeric1 * numeric2, numeric1 / numeric2, POWER(numeric1, numeric2), ABS(numeric), SQRT(numeric), LN(numeric), LOG10(numeric), EXP(numeric), RAND([seed]), ACOS(numeric), ASIN(numeric), ATAN(numeric), ATAN2(numeric, numeric), COS(numeric), COT(numeric), DEGREES(numeric), PIRADIANS(numeric), SIN(numeric), TAN(numeric) |
String functions | string || string, CHAR_LENGTH(string), CHARACTER_LENGTH(string), UPPER(string), LOWER(string), POSITION(string1 IN string2), REPLACE (string_expression, string_pattern, string_replacement), TRIM( { BOTH | LEADING | TRAILING } string1 FROM string2), SUBSTRING(string FROM integer), SUBSTRING(string FROM integer FOR integer) |
Date/Time/Timestamp functions | LOCALTIME, LOCALTIME(precision), LOCALTIMESTAMP, LOCALTIMESTAMP(precision), CURRENT_DATE, EXTRACT(timeUnit FROM datetime) |
Case functions | CASE value, CASE, NULLIF(value, value), COALESCE(value, value [, value ]*) |
Aggregation functions | COUNT( [ ALL | DISTINCT ] value [, value ]*), COUNT(*), APPROX_COUNT_DISTINCT(value [, value ]*), AVG( [ ALL | DISTINCT ] numeric), SUM( [ ALL | DISTINCT ] numeric), MAX( [ ALL | DISTINCT ] value), MIN( [ ALL | DISTINCT ] value), STDDEV_POP( [ ALL | DISTINCT ] numeric), STDDEV_SAMP( [ ALL | DISTINCT ] numeric), VAR_POP( [ ALL | DISTINCT ] value), VAR_SAMP( [ ALL | DISTINCT ] numeric) |
Set clauses | UNION, UNION ALL, GROUP BY, ORDER BY, HAVING, INTERSECT, EXCEPT, LIMIT, CAST (see documentation) |
Join clauses | INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, INNER JOIN (sub-query), LEFT OUTER JOIN (sub-query), RIGHT OUTER JOIN (sub-query), FULL OUTER JOIN (sub-query) |
Data types mapping
Datameer | SQL |
---|---|
date | timestamp |
integer | big integers |
big decimal | decimal |
big intiger | decimal |
floats | doubles |
strings | varchars |
boolean | boolean |
Using reserved SQL keywords#
There are reserved keywords that SQL uses for defining, manipulating, and accessing databases.
If you reference a Workbook column in an SQL worksheet that has the same name as a reserved keyword, an error is displayed.
To reference a column in an SQL sheet that has the same name as a reserved SQL keyword, the reference column name must be escaped using backticks (`) around the word.
Example
SQL sheet call | Response |
---|---|
SELECT salesInfo.Date | Error |
SELECT salesInfo.`Date` | Success |
In the example above, the reserved SQL keyword Date must be escaped using backticks.
Permissions#
The run, edit, and delete privileges for the SQL worksheet are as they are assigned for the Workbook.
Commentary Function#
You can comment in the SQL Editor:
-
for commenting a single line:
-
for commenting multiline:
Limitations#
- Create Table, Delete Table, and Modify Table structure / DDL aren't currently supported.
- Window functions aren't currently supported.
- Using Hive UDFs /UDAs in the SQL editor isn't currently supported.
- Using all the Spectrum functions in the SQL editor isn't currently supported.
- Spectrum's LIST data type isn't supported for SQL worksheets.
Performance Tuning#
TIP
If the main query contains the function 'ORDER BY' the Spectrum SQL engine will limit sort task parallelism to '1'. For a better performance we recommend to apply the 'SORT' function to the SQL sheet instead.
If the main query contains the function 'ORDER BY' with a limitation we recommend to apply the 'SORT' function with a limit.
Both functions turn the SQL sheet to an SQL sheet with inline sort. Spectrum then performs parallel sorting more efficiently.