Questo articolo è dedicato a un'analisi del prodotto leggermente più complessa con la ricerca full-text rispetto alla prima parte in cui abbiamo esaminato come eseguire un'analisi di base del prodotto.
Qui, i lettori implementeranno alcuni esempi completi di analisi del prodotto da un punto di vista di vendita con l'aiuto di query full-text.
Questo articolo illustra la forza delle query full-text quando vengono utilizzate con funzioni analitiche nell'esecuzione di un'analisi del prodotto.
Prerequisiti
Ti suggerisco di esaminare i prerequisiti di questo articolo prima di iniziare a implementare esempi di analisi del prodotto.
Parte 1. Elementi essenziali
Si presuppone che tu abbia eseguito Impara a eseguire l'analisi del prodotto utilizzando la ricerca full-text di SQL Server. Parte 1 e avere la capacità di eseguire un'analisi di base del prodotto con l'aiuto degli esempi citati nella prima parte.
Comprensione di T-SQL e ricerca full-text
Per sentirsi a proprio agio durante la lettura di questo articolo, consigliamo ai lettori di avere una buona conoscenza degli script T-SQL e della ricerca full-text.
Fare riferimento a Implementazione della ricerca full-text in SQL Server 2016 per utenti avanzati per ottenere una comprensione di livello avanzato della ricerca full-text, a condizione che si conoscano già le nozioni di base. Tuttavia, consigliamo di consultare l'articolo Implementazione della ricerca full-text in SQL Server 2016 per principianti se è necessario sviluppare una conoscenza di base prima di procedere con gli usi avanzati della ricerca full-text.
Ricerca full-text installata
Per procedere correttamente con l'articolo, assicurati di aver installato la ricerca full-text sulla tua istanza SQL.
Segui questi passaggi per installare la ricerca full-text sul server SQL:
- Esegui il programma di installazione SQL.
- Esegui file di installazione.
- Aggiungi come funzionalità.
- Scegli il tuo server attuale.
- Seleziona la caratteristica dell'istanza da aggiungere.
Puoi anche fare riferimento all'articolo Implementazione della ricerca full-text in SQL Server 2016 per principianti per ottenere informazioni dettagliate sui passaggi sopra menzionati.
Database di campioni (CarPlus)
Dovresti seguire le istruzioni nella prima parte se non hai ancora impostato il database di esempio. Tieni presente che dovrai configurare CarPlus database di esempio per implementare gli esempi in questo articolo.
Catalogo full-text e indice full-text
Ci aspettiamo inoltre che tu definisca il catalogo full-text e l'indice full-text nella colonna FeaturesLiked.
Fare riferimento a Imparare a eseguire l'analisi del prodotto utilizzando la ricerca full-text di SQL Server. Parte 1 per eseguire i passaggi precedenti a meno che tu non li abbia già completati.
Analisi 1:ricerca full-text per i sensori
Diciamo che abbiamo avuto diversi sensori pronti all'uso forniti con l'auto e ora il top management è ansioso di sapere le seguenti cose:
- I clienti che hanno acquistato le auto hanno provato sensori pronti all'uso?
- Che tipo di sensori gli piacevano?
- Quanti sensori di un particolare tipo gli sono piaciuti?
- Possiamo confrontare tutti i diversi sensori che sono piaciuti ai clienti?
Puoi trovare le risposte a tutte queste domande con l'aiuto della ricerca full-text.
Ricerca dei sensori preferiti dai clienti
Per sapere se i clienti hanno apprezzato uno dei sensori dell'auto quando hanno effettuato gli ordini, dobbiamo eseguire una query full-text come segue:
--View Orders where customers liked Sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor')
Vedrai quindi i seguenti risultati:
Una cosa è certa:i clienti hanno apprezzato i sensori pronti all'uso quando hanno acquistato le loro auto. Questo perché la ricerca full-text per i sensori ha restituito una serie di risultati.
La ricerca informa che abbiamo almeno due tipi di sensori che sono piaciuti ai clienti:
- Sensore tattile
- Sensore di parcheggio in retromarcia
È sicuro dire che i clienti hanno apprezzato almeno i tipi di sensori sopra menzionati.
Ricerca in tutti i sensori di parcheggio preferiti dai clienti
Ora dobbiamo utilizzare la ricerca full-text per trovare tutti i tipi di sensori di parcheggio che i nostri clienti hanno apprezzato.
Possiamo scoprirlo utilizzando NEAR con i seguenti termini di ricerca (come segue):
--View Orders where customers liked parking sensors
SELECT
FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor NEAR Parking')
L'output è il seguente:
Di conseguenza, sembrano esserci sette di questi casi in cui i clienti hanno apprezzato Sensore di parcheggio . Tuttavia, dobbiamo approfondire per ottenere maggiori informazioni.
Ricerca di sensori diversi dai sensori di parcheggio preferiti dai clienti
Ora vorremmo conoscere l'altro lato della storia, ovvero scoprire a quali clienti sono piaciuti i sensori diversi da Sensore di parcheggio .
Utilizza la seguente query full-text per cercare i sensori che sono piaciuti ai clienti diversi da Sensore di parcheggio :
--View Orders where customers liked other than parking sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Parking')
I risultati della suddetta query full-text sono i seguenti:
Oltre al sensore di parcheggio, i clienti hanno apprezzato Sensore tattile .
Confronto dei sensori di parcheggio con sensori tattili e con altri sensori
La prossima cosa importante è vedere se possiamo confrontare Sensore di parcheggio con Sensore tattile con altri tipi di sensori che sono piaciuti ai clienti quando hanno effettuato gli ordini per l'acquisto di un'auto.
Abbiamo anche bisogno di conoscere il numero totale di ordini effettuati in questa stagione per rendere il confronto più interessante.
Comunque, questo non è abbastanza. Dobbiamo anche capire la percentuale di somiglianza tra i sensori.
Puoi scoprirlo utilizzando una query full-text con l'aiuto di variabili e aggregazioni T-SQL come segue:
DECLARE @TotalParkingSensorLikes INT
DECLARE @TotalTouchSensorLikes INT
DECLARE @TotalOtherSensorLikes INT
DECLARE @TotalOrders INT
SET @TotalOrders=(SELECT COUNT(*) FROM dbo.CarOrder)
SET @TotalParkingSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor NEAR Parking'))
SET @TotalTouchSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor NEAR Touch'))
SET @TotalOtherSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Touch AND NOT Parking'))
-- Total parking sensors likes vs touch sensors
SELECT @TotalOrders AS TotalOrders,@TotalTouchSensorLikes AS Total_Parking_Sensor_Likes,
(@TotalTouchSensorLikes*100/@TotalOrders) AS PercentLikes,
@TotalParkingSensorLikes AS Total_Touch_Sensor_Likes,
(@TotalParkingSensorLikes*100/@TotalOrders) AS PercentLikes,
@TotalOtherSensorLikes AS Total_Other_Sensor_Likes,
(@TotalOtherSensorLikes*100/@TotalOrders) AS PercentLikes
L'output può essere visualizzato come segue:
Riepilogo dei risultati dell'analisi
Possiamo concludere che i clienti hanno preferito l'auto Sensore tattile funzione sul Sensore di parcheggio in retromarcia caratteristica. Tuttavia, erano gli unici sensori che piacevano ai clienti. E la funzione che gli è piaciuta di più, ovvero il sensore tattile, occupa solo il 23 percento di tutte le funzioni che gli sono piaciute.
Analisi 2:ricerca full-text di assistenza alla guida e avvisi
Se ora assumiamo che è stato durante questa stagione che l'azienda produttrice di automobili ha introdotto un paio di funzioni di assistenza alla guida, inclusi alcuni avvisi.
L'azienda vorrebbe sapere le seguenti cose:
- Quali tipi di avvisi di guida e funzioni di assistenza sono piaciuti ai clienti?
- Quanti clienti hanno apprezzato la combinazione di avvisi e funzioni di assistenza?
- Possiamo eseguire un'analisi basata sull'età dei clienti che hanno apprezzato sia gli avvisi che le funzioni di assistenza?
Ricerca di avvisi di guida e funzioni di assistenza preferite dai clienti
Possiamo cercare avvisi di guida e funzioni di assistenza che i clienti hanno apprezzato utilizzando una query full-text, ma dobbiamo tenere presente che la parola "Rileva" può essere utilizzato anche come alternativa a "Avvisi" come segue:
--Searching driving alerts and assistance features liked by customers
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) OR FORMSOF(INFLECTIONAL,Alerts)
OR FORMSOF(INFLECTIONAL,Detect)
')
I risultati della suddetta query full-text sono i seguenti:
Quindi, utilizzando una query full-text, abbiamo trovato la risposta alla prima domanda aziendale sui tipi di funzionalità e avvisi preferiti dai clienti.
Si potrebbe quindi concludere che ai clienti sono piaciuti i seguenti tipi di avvisi di guida e funzioni di assistenza:
- Avviso di cambio corsia
- Assistenza in salita
- Rilevamento di collisioni
- Avviso pressione pneumatici
Ricerca di clienti a cui piacciono tutti gli avvisi di guida e le funzioni di assistenza
Una domanda leggermente più complicata è scoprire quanti clienti hanno apprezzato tutte le funzioni e gli avvisi di assistenza alla guida, a cui è possibile rispondere con una query full-text come segue:
--Searching order where both alerts and driving assistance features are liked by customers
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) AND (FORMSOF(INFLECTIONAL,Alerts) OR FORMSOF(INFLECTIONAL,DETECT)
)')
L'output è il seguente:
Quindi, ci sono quattro ordini in cui i clienti hanno apprezzato sia le funzioni di assistenza alla guida che gli avvisi.
Analisi basata sull'età dei clienti che hanno apprezzato le funzioni di assistenza alla guida e avvisi
Per ottenere maggiori informazioni, cercheremo di comprendere le funzioni di assistenza alla guida e gli avvisi che i clienti hanno apprezzato in base alla loro età.
Puoi anche eseguire questa operazione utilizzando la combinazione di una query full-text e delle funzioni analitiche fornite in T-SQL come segue:
-- Age based analysis of customers liking all driving alerts and assistance features
SELECT DISTINCT(CustomerAge),TotalOrders=COUNT(*) OVER (Partition BY CustomerAge),
FIRST_VALUE(CustomerAge) OVER (Order by CustomerAge) as YoungestCustomer,
LAG(CustomerAge,1,0) OVER (ORDER BY CustomerAge) as YoungerCustomerOrSameAge,
LEAD(CustomerAge,1,0) OVER (ORDER BY CustomerAge) as OlderCustomerOrSameAge,
FeaturesLiked as Driving_Assistance_or_Alerts_Features
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) OR FORMSOF(INFLECTIONAL,Alerts)
OR FORMSOF(INFLECTIONAL,Detect)')
ORDER BY TotalOrders DESC
L'output è il seguente:
Fare riferimento all'articolo The Art of Aggregating Data in SQL from Simple to Sliding Aggregations per ulteriori informazioni su come utilizzare le funzioni analitiche in T-SQL.
Riepilogo dei risultati dell'analisi
Alla luce dell'analisi di cui sopra utilizzando la ricerca full-text, è chiaro che le funzioni di assistenza alla guida e di avviso di guida che i clienti hanno apprezzato appartengono per lo più alla fascia di età di 35 anni.
Quindi, i clienti di 35 anni hanno apprezzato di più queste funzionalità, mentre il cliente più giovane a cui sono piaciute queste funzionalità ha 18 anni.
Il cliente più anziano a cui sono piaciute queste funzionalità ha 52 anni.
Dall'analisi di cui sopra si può dedurre che la maggior parte dei clienti di età compresa tra i 18 ei 52 anni hanno apprezzato le funzioni di assistenza alla guida e di avviso di guida, mentre i clienti che hanno apprezzato queste funzioni più di altri hanno 35 anni.
Congratulazioni, hai imparato con successo come eseguire un'analisi del prodotto leggermente complessa utilizzando la ricerca full-text.
Cose da fare
Ora che puoi eseguire l'analisi del prodotto con la ricerca full-text, ti incoraggio a provare quanto segue:
- Cerca di ottenere informazioni correlate trovando i clienti a cui sono piaciuti sia i sensori che le funzioni di assistenza alla guida, ma non gli avvisi quando hanno acquistato l'auto.
- Tenendo presente questo articolo, cerca i clienti a cui sono piaciuti gli avvisi ma non le funzioni di assistenza alla guida.
- Cerca di eseguire un'analisi basata sull'età dei clienti per i sensori simile a quella che abbiamo eseguito per l'assistenza alla guida e le funzioni di avviso.