I de följande exemplen visas några av alternativen när du använder anpassad SQL för Direct Query.
Exempel: Lägga till anpassade SQL-definitioner i Direct Query-modellen
I det här exemplen läggs anpassade SQL-definitioner för tabellerna C, R och N till i datamodellen i Direct Query-appen tillsammans med två relationer mellan tabeller. Coalesce-funktionen används för att kontrollera om ett fältvärde på N_NATIONKEY är lika med värdet för C_NATIONKEY, eller om båda är lika med null.
LIB CONNECT TO 'CustomSQL:Snowflake_example.com';
Section DirectQuery;
C:
Select C_NATIONKEY, Sum(C_ACCTBAL) as C_SUM from tpch1.customer group by C_NATIONKEY;
R:
SELECT R_REGIONKEY, R_NAME from tpch1.region;
N:
SELECT N_REGIONKEY, N_NAME, N_NATIONKEY from tpch1.nation;
Create Relationship Between R, N Matching R_REGIONKEY With N_REGIONKEY;
Create Relationship
Between Outer Joined N, Inner Joined C On
(coalesce([N_NATIONKEY], -1) = coalesce([C_NATIONKEY], -1));
Exempel: Lägga till tabeller med anpassad SQL i en datamodell som gjorts med Hanterare för datamodell
I det här exemplet konstrueras Direct Query-datamodellen först med innehållet i DirectQueryModel.main-objektet, som skapades med Hanterare för datamodell. Därefter läggs ytterligare en tabell, C med fälten C_CUSTKEY och C_ACCTBAL till i datamodellen. En relation skapas mellan fältet O_CUSTKEY i ORDERS med fältet C_CUSTKEY i C.
LIB CONNECT TO 'CustomSQL:Snowflake_example.com';
// DMM created model portion includes Orders table.
IMPORT LIVE 'ModelName@obj://DirectQueryModel.Main';
Section DirectQuery;
C: Select C_CUSTKEY, C_ACCTBAL from tpch1.customer;
Create Relationship Between ORDERS, C on (O_CUSTKEY = C_CUSTKEY);
Exempel: Skapa en Direct Query-datamodell med en anpassad SQL-tabell
I det här exemplet konstrueras Direct Query-datamodellen med en anpassad SQL-tabell, C, med de omdöpta fälten C_KEY och C_BAL. Därefter lägger IMPORT LIVE till datamodellen som skapats i Hanterare för datamodell från DirectQueryModel.main. Den här datamodellen innehåller tabellen Ordrar och har en befintlig relation mellan Orders och Customer i modellen. Därefter tas den befintliga relationen mellan Customers och Orders bort och en ny relation definieras mellan Orders och C.
LIB CONNECT TO 'CustomSQL:Snowflake_example.com';
Section DirectQuery;
C: Select C_CUSTKEY as C_KEY, C_ACCTBAL as C_BAL from tpch1.customer;
// DMM created model portion includes Orders table.
IMPORT LIVE 'ModelName@obj://DirectQueryModel.Main';
// This relationship was defined using DMM between ORDERS and CUSTOMER, but I want to define my own.
Drop Relationship Between ORDERS, CUSTOMER;
Create Relationship Between ORDERS, C on (O_CUSTKEY = C_KEY);
Exempel: Konstruera en datamodell inklusive variabler
I det här exempelet defineras variabeln MULT först med ett värde på 100. Därefter tillämpas den som en multiplicerare för summan av PS_Supplycost för att beräkna fältet S.
LIB CONNECT TO 'CustomSQL:Snowflake_example.com';
Section DirectQuery;
LET MULT=100;
T1: SELECT PS_AVAILQTY AS C, SUM(PS_SUPPLYCOST) * $(MULT) AS S FROM "TPCH.01"."PARTSUPP" GROUP BY C;
Exempel: Konstruera en datamodell med Qlik-uttryck
I det här exemplet används båda variablerna och uttrycken för att bygga datamodellen. I tabellen ORDERS_AGGREGATIONS används uttryck för att definiera värdena i ORDERS_GROUP_TOTAL_PRICE. När urval görs i ett ark som påverkar värdena i ORDERS_GROUP_TOTAL_PRICE kommer uttrycket att utvärderas på nytt för de data som returneras till databasen av frågan.
IMPORT LIVE 'ModelName@obj://DirectQueryModel.Main';
section DirectQuery;
let Aggr1 = 1;
let Aggr2 = 0;
[GROUPS]:
SELECT 0 as GROUP_CODE, 'NONE' as "GROUP"
UNION ALL
SELECT 1 as GROUP_CODE, 'ORDERSTATUS' as "GROUP"
UNION ALL
SELECT 2 as GROUP_CODE, 'ORDERPRIORITY' as "GROUP"
;
[ORDERS_AGGREGATIONS]:
SELECT 'BY ORDERSTATUS' as "GROUP_NAME",
"O_ORDERSTATUS" as "ORDERS_GROUP",
sum("O_TOTALPRICE") as "ORDERS_GROUP_TOTAL_PRICE"
FROM "TEST1"."TPCH.01"."ORDERS"
WHERE '$(=min({<GROUP_CODE={0,1}>}[GROUP_CODE]))' = '1'
GROUP BY 1,2
UNION ALL
SELECT 'BY ORDERPRIORITY' as "GROUP_NAME",
"O_ORDERPRIORITY" as "ORDERS_GROUP",
sum("O_TOTALPRICE") as "ORDERS_GROUP_TOTAL_PRICE"
FROM "TEST1"."TPCH.01"."ORDERS"
WHERE '$(=min({<GROUP_CODE={0,2}>}[GROUP_CODE]))' = '2'
GROUP BY 1,2;
;
[ORDERS_AGGREGATIONS_VARS]:
SELECT 'BY ORDERSTATUS' as "GROUP_NAME_V",
"O_ORDERSTATUS" as "ORDERS_GROUP_V",
sum("O_TOTALPRICE") as "ORDERS_GROUP_TOTAL_PRICE_V"
FROM "TEST1"."TPCH.01"."ORDERS"
WHERE $(=Aggr1) = 1
GROUP BY 1,2
UNION ALL
SELECT 'BY ORDERPRIORITY' as "GROUP_NAME_V",
"O_ORDERPRIORITY" as "ORDERS_GROUP_V",
sum("O_TOTALPRICE") as "ORDERS_GROUP_TOTAL_PRICE_V"
FROM "TEST1"."TPCH.01"."ORDERS"
WHERE $(=Aggr2) = 1
GROUP BY 1,2;
;
Var den här sidan till hjälp för dig?
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!