Självstudie: Transformera data med en lagrad procedur i ett lager
Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric
I den här självstudien lär du dig hur du skapar en lagrad procedur i ett lager för att transformera data i en tabell.
Not
Den här självstudien är en del av ett komplett -scenario. För att kunna slutföra den här självstudien måste du först slutföra de här självstudierna:
Skapa en lagrad procedur
I den här uppgiften får du lära dig hur du skapar en lagrad procedur för att transformera data i en lagertabell.
Kontrollera att arbetsytan som du skapade i den första handledningen är öppen.
I menyfliksområdet Start väljer du Ny SQL-fråga.
Klistra in följande kod i frågeredigeraren. Koden släpper den lagrade proceduren (om den finns) och skapar sedan en lagrad procedur med namnet
populate_aggregate_sale_by_city
. Logiken för lagrad procedur skapar en tabell med namnetaggregate_sale_by_date_city
och infogar data i den med en grupp-efter-fråga som kopplar samman tabellernafact_sale
ochdimension_city
.--Drop the stored procedure if it already exists. DROP PROCEDURE IF EXISTS [dbo].[populate_aggregate_sale_by_city]; GO --Create the populate_aggregate_sale_by_city stored procedure. CREATE PROCEDURE [dbo].[populate_aggregate_sale_by_city] AS BEGIN --Drop the aggregate table if it already exists. DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city]; --Create the aggregate table. CREATE TABLE [dbo].[aggregate_sale_by_date_city] ( [Date] [DATETIME2](6), [City] [VARCHAR](8000), [StateProvince] [VARCHAR](8000), [SalesTerritory] [VARCHAR](8000), [SumOfTotalExcludingTax] [DECIMAL](38,2), [SumOfTaxAmount] [DECIMAL](38,6), [SumOfTotalIncludingTax] [DECIMAL](38,6), [SumOfProfit] [DECIMAL](38,2) ); --Load aggregated data into the table. INSERT INTO [dbo].[aggregate_sale_by_date_city] SELECT FS.[InvoiceDateKey] AS [Date], DC.[City], DC.[StateProvince], DC.[SalesTerritory], SUM(FS.[TotalExcludingTax]) AS [SumOfTotalExcludingTax], SUM(FS.[TaxAmount]) AS [SumOfTaxAmount], SUM(FS.[TotalIncludingTax]) AS [SumOfTotalIncludingTax], SUM(FS.[Profit]) AS [SumOfProfit] FROM [dbo].[fact_sale] AS FS INNER JOIN [dbo].[dimension_city] AS DC ON FS.[CityKey] = DC.[CityKey] GROUP BY FS.[InvoiceDateKey], DC.[City], DC.[StateProvince], DC.[SalesTerritory] ORDER BY FS.[InvoiceDateKey], DC.[StateProvince], DC.[City]; END;
Om du vill köra frågan går du till menyfliksområdet frågedesigner och väljer Kör.
När utförandet är klart byter du namn på frågan till
Create Aggregate Procedure
.I fönstret Explorer kontrollerar du att den
aggregate_sale_by_date_city
lagrade proceduren finns i mappen Lagrade procedurer fördbo
-schemat.
Kör den lagrade proceduren
I den här uppgiften får du lära dig hur du kör den lagrade proceduren för att transformera data i en lagertabell.
Skapa en ny fråga.
Klistra in följande kod i frågeredigeraren. Koden kör den
populate_aggregate_sale_by_city
lagrade proceduren.--Execute the stored procedure to create and load aggregated data. EXEC [dbo].[populate_aggregate_sale_by_city];
Kör sökningen.
När körningen är klar byter du namn på frågan till
Run Aggregate Procedure
.Om du vill förhandsgranska aggregerade data går du till fönstret Explorer och väljer tabellen
aggregate_sale_by_date_city
.Noteringen
Om tabellen inte visas väljer du ellipsen (...) för mappen Tables och väljer sedan Uppdatera.