Översätta SQL-frågor i Commerce Intelligence
Har du någonsin undrat hur SQL-frågor översätts till de beräknade kolumnerna, metrics och reports som du använder i Commerce Intelligence? Om du är en tung SQL-användare kan du arbeta smartare i Data Warehouse Manager och få ut det mesta av Commerce Intelligence-plattformen genom att förstå hur SQL översätts i Commerce Intelligence.
I slutet av det här avsnittet finns en översättningsmatris för SQL-frågesatser och Commerce Intelligence -element.
Börja med en allmän fråga:
SELECT
a,
group by
SUM(b)
Aggregate function
(kolumn)FROM c
Source
-tabellWHERE
d IS NOT NULL
Filter
AND time < X
AND time >= Y
time frame
GROUP BY a
group by
Det här exemplet omfattar de flesta översättningsfall, men det finns några undantag. Gör en djupdykning, med början från hur funktionen aggregate
översätts.
Sammanställningsfunktioner
Sammanställningsfunktioner (till exempel count
, sum
, average
, max
, min
) i frågor har antingen formen metriska aggregeringar eller kolumnaggregeringar i Commerce Intelligence. Den differentierande faktorn är om en join krävs för att utföra aggregeringen.
Titta på ett exempel för vart och ett av de ovanstående.
Måttaggregat aggregate
Ett mått krävs vid aggregering av within a single table
. Exempelvis skulle mängdfunktionen SUM(b)
från frågan ovan sannolikt representeras av ett mått som summerar kolumnen B
.
Titta på ett specifikt exempel på hur ett Total Revenue
-mått kan definieras i Commerce Intelligence. Titta på frågan nedan som du försöker översätta:
SELECT
SUM(order_total) as "Total Revenue"
Metric operation
(kolumn)FROM orders
Metric source
-tabellWHERE
email NOT LIKE '%@magento.com'
filter
AND created_at < X
AND created_at >= Y
timestamp
(och rapportering time range
)Navigera till måttverktyget genom att klicka på Manage Data > Metrisk > Skapa nytt mätresultat. Du måste först markera rätt source
-tabell, som i det här fallet är orders
-tabellen. Därefter ställs måtten in enligt nedan:
Kolumnaggregeringar
En beräknad kolumn krävs vid sammanställning av en kolumn som är kopplad från en annan tabell. Du kan till exempel ha en kolumn som är inbyggd i din customer
-tabell som heter Customer LTV
och som summerar det totala värdet för alla order som är kopplade till den kunden i tabellen orders
.
Frågan för den här aggregeringen kan se ut ungefär som nedan:
Select
c.customer_id
SUM(o.order_total) as "Customer LTV"
FROM customers c
JOIN orders o
ON c.customer_id = o.customer_id
WHERE o.status = 'success'
Om du konfigurerar detta i Commerce Intelligence måste du använda din kundhanterare, där du skapar en sökväg mellan din orders
- och customers
-Data Warehouse och sedan skapar en med namnet Customer LTV
i kundens tabell.
Titta på hur du skapar en ny sökväg mellan customers
och orders
. Slutmålet är att skapa en ny aggregerad kolumn i tabellen customers
, så navigera först till tabellen customers
i Datan Warehouse och klicka sedan på Create a Column > Markera en definition > SUM.
Sedan måste du välja källtabellen. Om det finns en sökväg till din orders
-tabell väljer du den i listrutan. Om du skapar en ny sökväg klickar du på Create new path så visas skärmen nedan:
Här bör du noga tänka på relationen mellan de två tabeller som du försöker ansluta till. I det här fallet finns det eventuellt Many
order som är kopplade till One
-kunden, och därför visas tabellen orders
på Many
-sidan, medan tabellen customers
är markerad på One
-sidan.
path
ekvivalent med en Join
i SQL.När sökvägen har sparats kan du skapa kolumnen Customer LTV
! Se nedan:
Nu när du har skapat den nya Customer LTV
-kolumnen i din customers
-tabell kan du skapa en måttaggregering med den här kolumnen (till exempel för att hitta den genomsnittliga LTV-nivån per kund). Du kan också group by
eller filter
med den beräknade kolumnen i en rapport med hjälp av befintliga mått som bygger på tabellen customers
.
filter
eller group by
när du skapar en ny beräknad kolumn.Se skapa beräknade kolumner med Data Warehouse Manager.
Group By
-satser
Group By
-funktioner i frågor representeras ofta i Commerce Intelligence som en kolumn som används för att segmentera eller filtrera en visuell rapport. Låt oss till exempel gå tillbaka till Total Revenue
-frågan som du utforskade tidigare, men den här gången segmenterar intäkterna av coupon\_code
för att få en bättre förståelse för vilka kuponger som genererar störst intäkter.
Börja med frågan nedan:
SELECT coupon_code,
group by
SUM(order_total) as "Total Revenue"
Metric operation
(kolumn)FROM orders
Metric source
-tabellWHERE
email NOT LIKE '%@magento.com'
filter
AND created_at < '2016-12-01'
AND created_at >= '2016-09-01'
timestamp
(och rapportering time range
)GROUP BY coupon_code
group by
Med samma Total Revenue
-mått som du skapade tidigare är du nu redo att skapa en intäktsrapport segmenterad med kupongkod! Titta på bilden nedan som visar hur du konfigurerar den här visuella rapporten med information från september till november:
Formler
Ibland kan en fråga innehålla flera aggregeringar för att beräkna relationen mellan olika kolumner. Du kan till exempel beräkna det genomsnittliga ordervärdet i en fråga på ett av två sätt:
AVG('order\_total')
ELLERSUM('order\_total')/COUNT('order\_id')
Den tidigare metoden skulle innebära att ett nytt mätvärde skapas som utför ett genomsnitt i kolumnen order\_total
. Den senare metoden kan dock skapas direkt i rapportverktyget, förutsatt att du redan har angett värden för att beräkna Total Revenue
och Number of orders
.
Ta ett steg tillbaka och titta på den övergripande frågan för Average order value
:
SELECT
SUM(order_total) as "Total Revenue"
operation
(kolumn)COUNT(order_id) as "Number of orders"
operation
(kolumn)SUM(order_total)/COUNT(order_id) as "Average order value"
operation
(kolumn) / Måttåtgärd (kolumn)FROM orders
source
WHERE
email NOT LIKE '%@magento.com'
filter
AND created_at < '2016-12-01'
AND created_at >= '2016-09-01'
Anta nu att du redan har ställt in mätvärden för att beräkna Total Revenue
och Number of orders
. Eftersom dessa mått finns kan du öppna Report Builder
och skapa en on demand-beräkning med funktionen Formula
:
Radbrytning
Om du är en tung SQL-användare kan du skapa beräknade kolumner, mätvärden och rapporter med hjälp av frågor som översätts i Commerce Intelligence.
Se matrisen nedan för snabb referens. Detta visar SQL-satsens motsvarande Commerce Intelligence-element och hur det kan mappas till mer än ett element, beroende på hur det används i frågan.
Commerce Intelligence Elements
SQL Clause
Metric
Filter
Report group by
Report time frame
Path
Calculated column inputs
Source table
SELECT
FROM
WHERE
WHERE
(med tidselement)JOIN...ON
GROUP BY