Logical SQL Reference for MCP Server Development (Preview)
This topic contains information specific to using Logical SQL with Oracle Analytics Cloud MCP Server development tasks.
Column Naming Convention
Always use three-part fully qualified names with llm_
prefixed aliases:
"Subject Area"."Table"."Column" AS llm_0
For XSA datasets:
XSA('namespace'.'dataset')."Table"."Column" AS llm_0
Query Templates
Basic Query
SELECT
"Subject Area"."Dimension"."Attribute" AS llm_0,
"Subject Area"."Facts"."Measure" AS llm_1
FROM "Subject Area"
WHERE "Subject Area"."Time"."Year" = 2024
ORDER BY llm_1 DESC
FETCH FIRST 100 ROWS ONLY
XSA Dataset Query
SELECT
XSA('[email protected]'.'Dataset')."Table"."Category" AS llm_0,
SUM(OVERRIDEAGGR(XSA('[email protected]'.'Dataset')."Table"."Amount")) AS llm_1
FROM XSA('[email protected]'.'Dataset')
ORDER BY llm_1 DESC
FETCH FIRST 50 ROWS ONLY
Time Series with AGO
SELECT
"SA"."Time"."Month" AS llm_0,
"SA"."Facts"."Revenue" AS llm_1,
AGO("SA"."Facts"."Revenue", "Time"."Year", 1) AS llm_2
FROM "SA"
WHERE "SA"."Time"."Year" IN (2023, 2024)
ORDER BY llm_0
FETCH FIRST 1000 ROWS ONLY
Key Functions
| Name | Syntax | Description |
|---|---|---|
AGO |
AGO(measure, time_level, offset) |
Prior period comparison. |
TODATE |
TODATE(measure, time_level) |
Period-to-date aggregation. |
TOPN |
TOPN(measure, n) |
Top-N filtering. |
BOTTOMN |
BOTTOMN(measure, n) |
Bottom-N filtering. |
RANK |
RANK(measure) |
Calculate rank. |
OVERRIDEAGGR |
OVERRIDEAGGR(measure) |
Override default aggregation. |
FILTER |
FILTER(measure USING condition) |
Conditional aggregation. |
Important Rules
- No manual joins - Oracle Analytics Cloud handles joins automatically.
- Three-Part Naming - Always use
"SubjectArea"."Table"."Column". - Column Aliases - Prefix with
llm_, for examplellm_0orllm_1. - Time Level in AGO/TODATE - Use two-part naming
"Table"."Column". Don't use three-part naming. - FETCH Clause - Always include
FETCH FIRST n ROWS ONLY.