PostgreSQL

Sväng med / utan Tablefunc

Sväng med / utan Tablefunc

En pivottabell är ett kraftfullt verktyg för att uppskatta, sammanställa och granska data för att hitta mönster och trender ännu enklare. Pivottabeller kan användas för att aggregera, sortera, ordna, ordna om, gruppera, totala eller genomsnittliga data i en dataset för att verkligen förstå dataföreningar och beroenden. Att använda en pivottabell som en illustration är det enklaste sättet att visa hur den här metoden fungerar. PostgreSQL 8.3 lanserades för några år tillbaka, och en ny version med namnet 'tablefunc' lades till. Tablefunc är en komponent som innehåller flera metoder som ger tabeller (det vill säga flera rader). Denna modifiering kommer med ett mycket häftigt utbud av funktioner. Crosstab-metoden, som kommer att användas för att skapa pivottabeller, är bland dem. Crosstab-metoden tar ett textargument: ett SQL-kommando som returnerar rådata i den första layouten och returnerar en tabell i den efterföljande layouten.

Exempel på pivottabell utan tabellFunc:

För att börja arbeta med PostgreSQL-pivotering med modulen 'tablefunc' måste du försöka skapa en pivottabell utan den. Så låt oss öppna PostgreSQL-kommandoradsskalet och ange parametervärdena för den server, databas, portnummer, användarnamn och lösenord som krävs. Lämna dessa parametrar tomma om du vill använda de valda parametrarna.

Vi kommer att skapa en ny tabell med namnet "Test" i databasens "test" med några fält i den, som visas nedan.

>> CREATE TABLE Test (Id int, name varchar (20), sal int, job varchar (20));

Efter att du har skapat en tabell är det dags att infoga några värden i tabellen, som visas i frågan nedan.

>> INSERT INTO Test (Id, name, sal, job) VALUES (11, 'Aqsa', 45000, 'Writer'), (11, 'Aqsa', 48000, 'Officer'), (11, 'Aqsa', 50000, 'Doctor'), (12, 'Raza', 40000, 'Officer'), (11, 'Raza', 60000, 'Doctor'), (12, 'Raza', 67000, 'Officer'), ( 13, 'Saeed', 85000, 'Writer'), (13, 'Saeed', 69000, 'Officer'), (13, 'Saeed', 90000, 'Doctor');

Du kan se att relevanta data har infogats. Du kan se att den här tabellen har mer än 1 av samma värden för id, namn och jobb.

>> VÄLJ * FRÅN ingång;

Låt oss skapa en pivottabell som sammanfattar posten för tabellen "Test" med hjälp av nedanstående fråga. Kommandot slår samman samma värden i kolumnen "Id" och "name" i en rad medan summan av kolumnvärden "lön" tas för samma data enligt "Id" och "name". Det berättar också hur många gånger ett värde har inträffat i den specifika uppsättningen värden.

>> VÄLJ Id, namn, summa (sal) sal, summa ((jobb = 'Läkare') :: int) Läkare, summa ((jobb = 'Writer') :: int) Writer, sum ((job = 'Officer) ') :: int) "Officer" FRÅN testgrupp efter ID, namn;

Exempel på pivottabell med TableFunc:

Vi börjar med att förklara vår huvudsakliga punkt ur en realistisk synvinkel och sedan beskriver vi skapandet av pivottabellen i steg vi gillar. Så först och främst måste du lägga till tre tabeller för att arbeta med en pivot. Den första tabellen som vi ska skapa är 'Makeup', som lagrar information om smink. Försök med nedanstående fråga i kommandoradsskalet för att skapa denna tabell.

>> SKAPA TABELL OM INTE FUNGAR Makeup (make_Id int PRIMÄR NYCKEL, p_namn VARCHAR (100) INTE NULL);

Efter skapandet av tabellen "Makeup", låt oss lägga till några poster till den. Vi kommer att utföra den nedan listade frågan i skalet för att lägga till 10 poster i den här tabellen.

Vi måste skapa en annan tabell med namnet 'användare' som kommer att hålla register över användarna som använder dessa produkter. Kör nedanstående fråga i skalet för att skapa den här tabellen.

>> SKAPA TABELL OM INTE EXisterAR användare (user_id int PRIMARY KEY, u_name varchar (100) NOT NULL);

Vi har lagt in de 20 posterna för tabellen "användare" som visas i bilden nedan.

Vi har en annan tabell, "makeup_user", som kommer att innehålla de ömsesidiga uppgifterna för både "Makeup" och "användare". Det har ett annat fält, "pris", som sparar produktens pris. Tabellen har genererats med hjälp av den angivna frågan nedan.

>> SKAPA TABELL OM INTE FÖR makeup_user (ID int PRIMÄR NYCKEL, Mid int INTE NULL REFERENSER Makeup (make_Id), Uid int INTE NULL REFERENS användare (user_id), pris decimal (18,2));

Vi har lagt in totalt 56 poster i den här tabellen, som visas på bilden.

Låt oss skapa en vy vidare för att använda den för generering av en pivottabell. Denna vy använder INNER Join för att matcha de primära nyckelkolumnvärdena för alla de tre tabellerna och hämta "namn", "produktnamn" och "kostnad" för en produkt från en tabell "kunder"

>> SKAPA VIEW v_makeup_users AS VÄLJ c.u_name, s.p_name, pc.pris FRÅN användare c INNRE JOIN makeup_user pc PÅ c.user_id = pc.Uid INNER JOIN Makeup p ON pc.Mitt = s.make_Id;

För att kunna använda detta måste du först installera tabellfunc-paketet för den databas du vill använda. Detta paket är inbyggt PostgreSQL 9.1 och senare släpptes genom att köra kommandot nedan. Tablefunc-paketet har aktiverats för dig nu.

>> SKAPA UTÖKNING OM INTE EXisterAR tablefunc;

När du har skapat tillägget är det dags att använda funktionen Crosstab () för att skapa en pivottabell. Så vi kommer att använda följande fråga i kommandoradsskalet för att göra det. Den här frågan hämtar först posten från den nyligen skapade "Visa". Dessa poster kommer att ordnas och grupperas efter stigande ordning på kolumnerna 'u_name' och 'p_name'. Vi har listat deras sminknamn för varje kund som de har köpt och den totala kostnaden för produkter som köpts i tabellen. Vi har använt UNION ALL-operatören i kolumnen "p_name" för att summera alla produkter som köpts av en kund separat. Detta sammanfattar alla kostnader för produkter som köpts av en användare i ett värde.

Vårt pivottabell har varit färdigt och visas i bilden. Du kan tydligt se att vissa kolumner är tomma under varje p_name eftersom de inte har köpt just den produkten.

Slutsats:

Vi har nu briljant lärt oss hur man skapar en pivottabell för att sammanfatta tabellens resultat med och utan användning av Tablefunc-paketet.

Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...
Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...