# SQL Standard

### Select Statements

The [Lyftrondata](https://www.lyftrondata.com/) driver for [Insightly](https://www.lyftrondata.com/integration/sales-analytics/insightly/) provides ANSI SQL standard support. A SELECT statement can consist of the following basic clauses.

* SELECT
* INTO
* FROM
* JOIN
* WHERE
* GROUP BY
* HAVING
* UNION
* ORDER BY
* LIMIT
* PAGESIZE LIMIT

### SELECT Syntax

The following syntax diagram outlines the syntax supported by the SQL engine of the provider:

{% code overflow="wrap" %}

```html
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>    ]  ]} | SCOPE_IDENTITY() <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 | AND | OR | CONTAINS | BETWEEN } [ <expression> ]  }} [ {{ AND | OR }} ... ]
```

{% endcode %}

### Examples

1. Return all columns:

   | <mark style="color:blue;">`SELECT * FROM employee;`</mark> |
   | ---------------------------------------------------------- |
2. Rename a column:

   | <mark style="color:blue;">`SELECT [age] AS MY_Age FROM address;`</mark> |
   | ----------------------------------------------------------------------- |
3. Cast a column's data as a different data type:

   | <mark style="color:blue;">`SELECT CAST(mobile AS VARCHAR) AS Str_Mobile FROM customer;`</mark> |
   | ---------------------------------------------------------------------------------------------- |
4. Search data:

   | <mark style="color:blue;">`SELECT * FROM customer WHERE company_name = 'lyftrondata';`</mark> |
   | --------------------------------------------------------------------------------------------- |
5. Return the number of items matching the query criteria:

   | <mark style="color:blue;">`SELECT COUNT(*) AS TotolRows FROM customer;`</mark> |
   | ------------------------------------------------------------------------------ |
6. Return the number of unique items matching the query criteria:

   | <mark style="color:blue;">`SELECT COUNT(DISTINCT name) FROM customer;`</mark> |
   | ----------------------------------------------------------------------------- |
7. Return the unique items matching the query criteria:

   | <mark style="color:blue;">`SELECT DISTINCT name FROM customer;`</mark> |
   | ---------------------------------------------------------------------- |
8. Summarize data:

   | <mark style="color:blue;">`SELECT priority, MAX(subscriptions) FROM customer GROUP BY subscriptions;`</mark> |
   | ------------------------------------------------------------------------------------------------------------ |
9. Retrieve data from multiple tables.

   | <mark style="color:blue;">`SELECT c.name, a.street FROM customer c INNER JOIN address a ON c.customer_id = a.customer_id`</mark> |
   | -------------------------------------------------------------------------------------------------------------------------------- |
10. Sort a result set in ascending order:

    | <mark style="color:blue;">`SELECT customer_id, subscriptions FROM customer ORDER BY subscriptions ASC`</mark> |
    | ------------------------------------------------------------------------------------------------------------- |
11. Restrict a result set to the specified number of rows:

    | <mark style="color:blue;">`SELECT customer_id, subscriptions FROM customer LIMIT 10`</mark> |
    | ------------------------------------------------------------------------------------------- |
12. Parameterize a query to pass in inputs at execution time. This enables you to create prepared statements and mitigate SQL injection attacks.

    | <mark style="color:blue;">`SELECT * FROM incident WHERE category = @param`</mark> |
    | --------------------------------------------------------------------------------- |

13\. Restrict a result set to the specified number of pages

<mark style="color:blue;">SELECT \* FROM sales\_invoice lyftstartpage 1 lyftendpage 10</mark>

### Quickstart Steps

Do you have questions about how to use the platform? Don't worry; we've got you covered. Simply follow the quickstart instructions [here](https://docs.lyftrondata.com/sales-analytics/readme/insightly/driver-framework).

### Questions? <a href="#questions" id="questions"></a>

We're always happy to answer any additional questions you may have! [Set up a meeting with our data experts.](https://www.lyftrondata.com/book-a-meeting/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lyftrondata.com/sales-analytics/readme/insightly/driver-framework/sql-standard.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
