Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Führen Sie eine Produktanalyse mit der SQL Server-Volltextsuche durch. Teil 1

Dieser Artikel befasst sich mit der Durchführung einer grundlegenden Produktanalyse mithilfe der Volltextsuche.

Außerdem lernen die Leser einige praktische Beispiele zur Produktanalyse im Vertrieb mit Hilfe von Volltextabfragen kennen.

Kurz gesagt betont dieser Artikel die Bedeutung der Volltextsuche, die Einblicke in Daten bietet und viele Verkaufsanfragen aus geschäftlicher Sicht beantwortet, ohne dass ausgefeiltere Methoden übernommen werden müssen, die jedoch ihre Vorteile haben.

Über die Produktanalyse

Schauen wir uns zuerst die Produktanalyse an.

Was ist Produktanalyse?

Produktanalyse aus geschäftlicher Sicht ist die Methode, Ihr Produkt und seine Verkäufe (Daten) so zu analysieren, dass es Ihnen hilft, die Stärken und Schwächen Ihres Produkts zu verstehen.

Beispielsweise möchte das Top-Management eines Autoverkaufsunternehmens möglicherweise alle Fahrzeugfunktionen in Bezug auf Sicherheit und Sensoren kennen, um es zu einem starken Verkaufsargument für sein Auto zu machen.

Ein weiteres Beispiel ist, wenn ein Unternehmen daran interessiert sein könnte, alle während einer Regenzeit verkauften Produkte zu sehen, die „regen“, „duschenfest“ oder „wasserfest“ (in der Beschreibung) enthalten, um zu verstehen, ob die Kunden neue Produkte für eine Regenzeit kaufen möchten Saison (von ihnen) oder nicht.

Warum ist eine Produktanalyse notwendig?

Die Produktanalyse ist der Schlüssel zu einem erfolgreich laufenden Unternehmen und kann dabei helfen, die Vor- und Nachteile eines Unternehmens hervorzuheben.

Es kann dem Unternehmen auch helfen, basierend auf den bestehenden Einkäufen bessere Entscheidungen zu treffen.

Abgesehen davon kann die Produktanalyse dem Unternehmen dabei helfen, die Geschäftstrends und deren Richtung zu verstehen.

Wie führe ich eine Produktanalyse durch?

Zum einen besteht die grundlegende Methode zur Analyse Ihres Produkts darin, SQL-Abfragen für die Datenbank auszuführen, die das Produkt und seine Verkaufsdaten enthält.

Eine bessere Möglichkeit, mehr Informationen zu erhalten, ist jedoch die Verwendung der Volltextsuche zum Abfragen Ihrer Verkaufsdatenbank, da sie verbesserte Suchkriterien bietet, die in allgemeinen SQL-Abfragen nicht verfügbar sind.

Produktanalyse mit Einschränkung der Volltextsuche

Obwohl mit der Volltextsuche eine ziemlich gute Analyse eines Produkts durchgeführt werden kann, hat sie ihre eigenen Einschränkungen.

Für eine flexiblere und gründlichere Analyse und Berichterstellung Ihrer Daten, unterstützt durch eine speziell entwickelte Infrastruktur, müssen Sie eine Business Intelligence Data Warehouse-Lösung entwickeln.

Voraussetzungen

Bitte gehen Sie die Voraussetzungen durch, um eine Produktanalyse mit der Volltextsuche durchzuführen, die später in diesem Artikel beschrieben wird.

Ausgeprägte T-SQL-Kenntnisse

Dieser Artikel erwartet, dass die Leser (die die Produktanalyse implementieren möchten) über starke T-SQL-Kenntnisse verfügen und in der Lage sind, SQL-Abfragen für die Datenbank(en) bequem zu schreiben und auszuführen.

Grundlegendes und fortgeschrittenes Verständnis der Volltextsuche

Der Artikel geht davon aus, dass die Leser, die beabsichtigen, die exemplarische Vorgehensweise mithilfe der Volltextsuche zu implementieren, über ein ziemlich gutes Verständnis der Volltextsuche und ihrer Verwendung verfügen.

Bitte lesen Sie den Artikel Implementing Full-Text Search in SQL Server 2016 for Advanced Users, um ein fortgeschrittenes Verständnis der Volltextsuche zu erhalten, wenn Sie bereits mit den Grundlagen vertraut sind.

Bitte lesen Sie jedoch den Artikel Implementing Full-Text Search in SQL Server 2016 für Anfänger, wenn Sie ein grundlegendes Verständnis entwickeln müssen, bevor Sie mit der erweiterten Verwendung der Volltextsuche beginnen.

Volltextsuche installiert

Außerdem wird in diesem Artikel davon ausgegangen, dass Sie die Volltextsuche bereits auf Ihrer SQL-Instanz installiert haben.

Bitte installieren Sie die Volltextsuche wie folgt auf dem SQL-Server:

  1. Führen Sie das SQL-Installationsprogramm aus.
  2. Setup-Datei ausführen.
  3. Als Feature hinzufügen.
  4. Wählen Sie Ihren aktuellen Server.
  5. Hinzuzufügende Instanzfunktion auswählen.

Bitte lesen Sie den Artikel Volltextsuche in SQL Server 2016 für Anfänger implementieren, um detaillierte Informationen zu den oben genannten Schritten zu erhalten.

Überprüfen Sie abschließend den Status der Volltextsuche, indem Sie das folgende T-SQL-Skript für die Master-Datenbank ausführen:

-- Is Full-Text Search installed then 1 or 0
SELECT fulltextserviceproperty('IsFulltextInstalled') as [Full-Text Search]

Die Ausgabe sollte wie folgt aussehen (wenn die Volltextsuche erfolgreich installiert wurde):

Volltextsuche für die Produktanalyse vorbereiten

Bereiten Sie die Ausführung von Volltextabfragen vor, um Produktanalysen durchzuführen, nachdem Sie eine Beispieldatenbank eingerichtet haben.

Beispieldatenbank einrichten (CarPlus)

Bitte richten Sie eine Beispieldatenbank namens CarPlus ein wie folgt:

-- Create sample database (CarPlus)
CREATE DATABASE CarPlus;
GO
 
 
USE CarPlus;
 
-- (1) Create CarOrder table in the sample database
CREATE TABLE CarOrder (
    CarOrderId int NOT NULL IDENTITY(1,1),
    CustomerAge int,
    FeaturesLiked varchar(300) NOT NULL,
    CONSTRAINT [PK_CarOrder] PRIMARY KEY ([CarOrderId]))
 
 
-- (2) Add data to the table
SET IDENTITY_INSERT [dbo].[CarOrder] ON
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (1, 27, N'Traction Control System, Lane Change Alert, Reverse Parking Sensor, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (2, 43, N'Advanced Anti-lock Braking System, Immobiliser, Four Wheels Drive, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (3, 33, N'Traction Control System, Immobiliser, Hill Assist, Auto Climate Control, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (4, 35, N'Isofix child seat fittings, Lane Change Alert, Collision Detection, Start Button, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (5, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Reverse Parking Sensor, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (6, 27, N'Touch Sensor, Lane Change Alert, Child Safety Lock, Auto Climate Control, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (7, 33, N'Traction Control System, Lane Change Alert, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (8, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Collision Detection, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (9, 20, N'Traction Control System, Advanced Disc Brakes, Child Safety Lock, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (10, 27, N'Isofix child seat fittings, Remote Locking, Tyre Pressure Alert, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (11, 46, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (12, 46, N'Traction Control System, Immobiliser, Collision Detection, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (13, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Hill Assist, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (14, 33, N'Traction Control System, Lane Change Alert, Tyre Pressure Alert, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (15, 40, N'Isofix child seat fittings, Lane Change Alert, Hill Assist, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (16, 33, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (17, 27, N'Touch Sensor, Lane Change Alert, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (18, 18, N'Touch Sensor, Lane Change Alert, Collision Detection, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (19, 33, N'Isofix child seat fittings, Lane Change Alert, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (20, 33, N'Advanced Anti-lock Braking System, Advanced Disc Brakes, Child Safety Lock, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (21, 27, N'Advanced Anti-lock Braking System, Immobiliser, Child Safety Lock, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (22, 43, N'Advanced Anti-lock Braking System, Advanced Disc Brakes, Reverse Parking Sensor, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (23, 33, N'Advanced Anti-lock Braking System, Immobiliser, Child Safety Lock, Navigation System, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (24, 46, N'Advanced Anti-lock Braking System, Remote Locking, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (25, 43, N'Touch Sensor, Lane Change Alert, Hill Assist, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (26, 32, N'Advanced Anti-lock Braking System, Immobiliser, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (27, 32, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (28, 26, N'Touch Sensor, Lane Change Alert, Hill Assist, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (29, 43, N'Traction Control System, Lane Change Alert, Child Safety Lock, Start Button, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (30, 26, N'Touch Sensor, Remote Locking, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, Bluetooth')
SET IDENTITY_INSERT [dbo].[CarOrder] OFF;
GO

Identifizieren Sie das Produkt

Das Beispiel CarPlus Die Datenbank enthält die folgenden Informationen, die in einer einzigen Tabelle gespeichert sind, um die strukturelle Komplexität der Datenbank zu vereinfachen und sich vollständig auf die Produktanalyse zu konzentrieren:

  1. Bestellnummer (für das gekaufte Auto)
  2. Das Alter des Kunden, der das Produkt (Auto) kauft
  3. Eigenschaften (des Autos), die dem Kunden gefallen haben

Bitte beachten Sie, dass das Produkt, das wir für die Analyse in diesem Artikel ausgewählt haben, das von einem Kunden gekaufte Auto ist.

Wir interessieren uns jedoch möglicherweise mehr für die Funktionen, die dem Kunden beim Kauf des Autos gefallen haben, da diese Funktionen wichtige Informationen für das Geschäft enthalten.

Die CarOrder Tabelle der Datenbank wird wie folgt dargestellt:

Erstellen Sie einen Volltextkatalog

Der erste Schritt, nachdem die Beispieldatenbank (CarPlus) erstellt und erfolgreich gefüllt wurde, besteht darin, einen Volltextkatalog zu erstellen.

Dies ermöglicht die Implementierung der Volltextsuche.

Bitte erstellen Sie einen Volltextkatalog, indem Sie das folgende T-SQL-Skript für die Beispieldatenbank ausführen:

-- Create Full-Text Catalog 
CREATE FULLTEXT CATALOG CarCatalog AS DEFAULT;  
GO  

Definieren Sie einen Volltextindex für die FeaturesLiked-Spalte

Da FeaturesGefällt mir Spalte die zentrale Spalte sein wird, die in der Produktanalyse verwendet wird, müssen wir einen Volltextindex darauf definieren, um Volltextabfragen auszuführen.

Schreiben Sie das folgende T-SQL-Skript, um einen Volltextindex zu definieren:

-- Define Full-Text Index on FeaturesLiked
CREATE FULLTEXT INDEX ON dbo.CarOrder(FeaturesLiked)   
   KEY INDEX PK_CarOrder
   WITH STOPLIST = SYSTEM;  
GO 

Bitte beachten Sie, dass Sie einen Volltextindex nur für eine Spalte der Tabelle definieren können, also wählen Sie ihn bitte sehr weise aus.

Gesamtbestellungen nach Alter der Kunden

Lassen Sie uns zunächst eine schnelle Analyse durchführen, um zu sehen, wie viele Autos an die Kunden einer bestimmten Altersgruppe verkauft wurden, indem Sie das folgende Skript ausführen:

--View total orders by customers age
SELECT CustomerAge,count(CarOrderId) as TotalOrders FROM dbo.CarOrder
GROUP BY CustomerAge
ORDER BY count(CarOrderId) DESC

Die Ausgabe sieht wie folgt aus:

Die Analyse wird interessanter, wenn wir die Volltextsuche anwenden.

Analyse der Kindersicherheitsfunktionen (Volltextsuche)

Das Unternehmen ist gespannt, welche Kindersicherheitsfunktionen den Kunden beim Kauf der Autos gefallen haben.

Drei Top-Kindersicherheitsfunktionen finden, die den Kunden gefallen

Lassen Sie uns zuerst die drei wichtigsten Kindersicherheitsfunktionen finden, die den Kunden beim Kauf des Autos gefallen haben, und diese können mithilfe der Volltextsuche wie folgt gefunden werden:

--View Top 3 child safety features liked using full-text search
SELECT TOP 3
  O.CarOrderId
 ,O.CustomerAge
 ,O.FeaturesLiked
FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked, '"*child*"')

Die Ergebnisse lauten wie folgt:

Andere Kindersicherungsfunktionen als Isofix und Safety Lock finden

Um jedoch sicherzustellen, dass dies die einzigen beiden Kindersicherheitsfunktionen sind, die den Kunden gefallen haben, die die Autos (in dieser Saison) gekauft haben, müssen wir unsere Volltextabfrage ändern, um zu prüfen, ob es weitere Kindersicherheitsfunktionen gibt:

Um dies zu finden, führen Sie die folgende Volltextsuche-Abfrage aus:

--View child safety features other than isofix and safety locked liked by customers
SELECT
  O.CarOrderId
 ,O.CustomerAge
 ,O.FeaturesLiked
FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked, '"*Child*" AND NOT "Child Safety Lock" AND NOT "Isofix*"')

Die Ausgabe sieht wie folgt aus:

Zusammenfassung der Analyseergebnisse

Angesichts der obigen Ergebnisse können wir leicht sagen, dass dem Kunden die folgenden Kindersicherungsfunktionen gefallen haben:

  1. Isofix-Kindersitzbefestigung
  2. Kindersicherung

Uns bleiben jetzt die beiden folgenden Möglichkeiten:

  1. Dies sind die einzigen Kindersicherheitsfunktionen, die das Unternehmen anbietet.
  2. Es gab einige andere Kindersicherheitsfunktionen, die vom Unternehmen angeboten wurden, aber die Kunden bevorzugten sie beim Kauf der Autos nicht.

Basierend auf den Ergebnissen müssen wir sicherstellen, dass diese Kindersicherheitsfunktionen in der nächsten Saison nicht ersetzt oder ausgeschlossen werden, da sie ein starkes Verkaufsargument für das Unternehmen zu sein scheinen.

Analyse der Bremsfunktionen

Als Nächstes muss das Unternehmen sehen, welche Art von Funktionen im Zusammenhang mit Bremsen den Kunden gefallen haben, damit es sich bei den bevorstehenden Verkäufen auf diese Funktionen konzentrieren kann.

Suchen Sie nach Bremsfunktionen, die den Kunden gefallen

Um die Top 5 bremsbezogenen Funktionen zu finden, die den Kunden gefallen haben, können wir die folgende Volltextabfrage ausführen:

-- Searching top 5 features related to brakes liked by the customers (full-text query)
SELECT TOP 5 O.CustomerAge,O.FeaturesLiked FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,brake)')

Die Ausgabe sieht wie folgt aus:

Zusammenfassung der Analyseergebnisse

Als Ergebnis der obigen Volltext-Abfrage wissen wir jetzt, dass die Bremsen-Funktionen den Kunden beim Autokauf gefallen haben:

  1. Erweitertes Antiblockiersystem
  2. Fortschrittliche Scheibenbremsen

Es scheint, dass sich die Kunden in dieser Saison von den vielen Funktionen im Zusammenhang mit Bremsen für die beiden oben genannten entschieden haben, und vielleicht können einige weitere Informationen dem Unternehmen helfen, seine zukünftigen Entscheidungen zu verbessern.

Herzlichen Glückwunsch, Sie haben erfolgreich gelernt, wie man eine Produktanalyse mit der Volltextsuche durchführt.

Bleiben Sie in Kontakt, da Teil 2 dieses Artikels eine etwas fortgeschrittenere Form einer Produktanalyse mit Volltextsuche enthält.

Dinge zu tun

Nachdem Sie jetzt eine Produktanalyse mit der Volltextsuche durchführen können, versuchen Sie Folgendes:

  1. Versuchen Sie, korrelierte Informationen zu erhalten, indem Sie die Kunden finden, die beim Kauf des Autos/der Autos sowohl Bremsen als auch Kindersicherheitsfunktionen mochten.
  2. Suchen Sie unter Berücksichtigung dieses Artikels nach Kunden, denen die Isofix-Kindersitzbefestigungen gefallen haben Funktion, aber nicht die Kindersicherung Funktion.
  3. Suchen Sie nach Kunden, die Advanced Disc Brakes nicht mochten mochte aber Advanced Antiblockiersystem .