Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Apprenez à effectuer une analyse de produit avec la recherche en texte intégral SQL Server. Partie 2

Cet article est consacré à une analyse de produit un peu plus complexe avec la recherche en texte intégral par opposition à la première partie où nous avons vu comment effectuer une analyse de produit de base.

Ici, les lecteurs vont mettre en œuvre des exemples complets d'analyse de produits du point de vue des ventes à l'aide de requêtes en texte intégral.

Cet article dévoile la force des requêtes de texte intégral lorsqu'elles sont utilisées avec des fonctions analytiques pour effectuer une analyse de produit.

Prérequis

Je vous suggère de parcourir les prérequis de cet article avant de commencer à mettre en œuvre des exemples d'analyse de produits.

Partie 1. L'essentiel

Nous supposons que vous avez suivi Apprenez à effectuer une analyse de produit à l'aide de la recherche en texte intégral SQL Server. Partie 1 et avoir la capacité d'effectuer une analyse de base du produit à l'aide des exemples mentionnés dans la première partie.

Compréhension de T-SQL et de la recherche en texte intégral

Pour vous sentir à l'aise lors de la lecture de cet article, nous recommandons aux lecteurs de bien comprendre les scripts T-SQL et la recherche en texte intégral.

Reportez-vous à Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les utilisateurs avancés pour obtenir une compréhension de niveau avancé de la recherche en texte intégral à condition que vous connaissiez déjà ses bases. Néanmoins, nous vous conseillons de consulter l'article Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les débutants si vous avez besoin de développer une compréhension de base avant de procéder à des utilisations avancées de la recherche en texte intégral.

Recherche en texte intégral installée

Pour poursuivre avec succès l'article, assurez-vous d'avoir installé la recherche en texte intégral sur votre instance SQL.

Suivez ces étapes pour installer la recherche en texte intégral sur le serveur SQL :

  1. Exécutez le programme d'installation SQL.
  2. Exécuter le fichier de configuration.
  3. Ajouter en tant que fonctionnalité.
  4. Choisissez votre serveur actuel.
  5. Sélectionnez la fonctionnalité d'instance à ajouter.

Vous pouvez également consulter l'article Mise en œuvre de la recherche en texte intégral dans SQL Server 2016 pour les débutants pour obtenir des informations détaillées sur les étapes mentionnées ci-dessus.

Exemple de base de données (CarPlus)

Vous devez suivre les instructions de la première partie si vous n'avez pas encore configuré l'exemple de base de données. Notez que vous devrez configurer le CarPlus exemple de base de données pour implémenter les exemples de cet article.

Catalogue de texte intégral et index de texte intégral

Nous attendons également de vous que vous définissiez le catalogue de texte intégral et l'index de texte intégral dans la colonne FeaturesLiked.

Veuillez vous reporter à Apprenez à effectuer une analyse de produit à l'aide de la recherche en texte intégral SQL Server. Partie 1 pour effectuer les étapes ci-dessus, sauf si vous les avez déjà terminées.

Analyse 1 : Recherche en texte intégral pour les capteurs

Disons que nous avions plusieurs capteurs prêts à l'emploi fournis avec la voiture, et maintenant, la haute direction est impatiente de savoir les choses suivantes :

  1. Les clients qui ont acheté les voitures ont-ils aimé les capteurs prêts à l'emploi ?
  2. Quel type de capteurs ont-ils aimé ?
  3. Combien de capteurs d'un type particulier ont-ils aimé ?
  4. Pouvons-nous comparer tous les différents capteurs que les clients ont appréciés ?

Vous pouvez trouver les réponses à toutes ces questions à l'aide de la recherche en texte intégral.

Rechercher les capteurs préférés des clients

Afin de savoir si les clients ont aimé l'un des capteurs de voiture lorsqu'ils ont passé leur commande, nous devons exécuter une requête en texte intégral comme suit :

--View Orders where customers liked Sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor')

Vous verrez alors les résultats suivants :

Une chose est certaine :les clients ont aimé les capteurs prêts à l'emploi lorsqu'ils ont acheté leurs voitures. En effet, la recherche de texte intégral pour les capteurs a renvoyé un certain nombre de résultats.

La recherche informe que nous avons au moins deux types de capteurs que les clients ont aimé :

  1. Capteur tactile
  2. Capteur de stationnement inversé

Il est sûr de dire que les clients ont aimé au moins les types de capteurs mentionnés ci-dessus.

Rechercher tous les capteurs de stationnement préférés des clients

Maintenant, nous devons utiliser la recherche en texte intégral pour trouver tous les types de Capteurs de stationnement que nos clients ont aimé.

Nous pouvons le découvrir en utilisant NEAR avec les termes de recherche suivants (comme suit) :

--View Orders where customers liked parking sensors
SELECT
FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor NEAR Parking')

Le résultat est le suivant :

En conséquence, il semble y avoir sept de ces cas où les clients ont aimé Parking Sensor . Cependant, nous devons aller plus loin pour obtenir plus d'informations.

Recherche de capteurs autres que les capteurs de stationnement préférés des clients

Maintenant, nous aimerions connaître l'autre côté de l'histoire, c'est-à-dire savoir quels clients ont aimé les capteurs autres que Parking Sensor .

Utilisez la requête en texte intégral suivante pour rechercher les capteurs que les clients ont aimés autres que Capteur de stationnement :

--View Orders where customers liked other than parking sensors
SELECT 
CarOrderId
,FeaturesLiked 
FROM dbo.CarOrder 
WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Parking')

Les résultats de la requête en texte intégral ci-dessus sont les suivants :

Outre Parking Sensor, les clients ont aimé Capteur tactile .

Comparaison des capteurs de stationnement avec des capteurs tactiles et avec d'autres capteurs

La prochaine grande chose est de voir si nous pouvons comparer Parking Sensor avec capteur tactile avec d'autres types de capteurs que les clients ont appréciés lorsqu'ils ont passé leurs commandes pour acheter une voiture.

Nous avons également besoin de connaître le nombre total de commandes passées cette saison pour rendre la comparaison plus intéressante.

Ce n'est pas sufisant. Nous devons également comprendre le pourcentage de similarité entre les capteurs.

Vous pouvez le découvrir en utilisant une requête en texte intégral à l'aide de variables et d'agrégations T-SQL comme suit :

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

La sortie peut être vue comme suit :

Résumé des résultats d'analyse

Nous pouvons conclure que les clients ont préféré le capteur tactile de la voiture fonction sur le Reverse Parking Sensor fonctionnalité. Cependant, c'étaient les seuls capteurs que les clients aimaient. Et la fonctionnalité qu'ils ont le plus appréciée, à savoir le capteur tactile, ne représente que 23 % de toutes les fonctionnalités qu'ils ont préférées.

Analyse 2 :Recherche en texte intégral pour l'assistance à la conduite et les alertes

Si nous supposons maintenant que c'est au cours de cette saison que le constructeur automobile a introduit quelques fonctionnalités d'aide à la conduite, y compris des alertes.

L'entreprise souhaite connaître les éléments suivants :

  1. Quels types d'alertes de conduite et de fonctionnalités d'assistance les clients ont-ils apprécié ?
  2. Combien de clients ont apprécié la combinaison des alertes et des fonctionnalités d'assistance ?
  3. Pouvons-nous effectuer une analyse basée sur l'âge des clients qui ont aimé les alertes et les fonctionnalités d'assistance ?

Rechercher les alertes de conduite et les fonctionnalités d'assistance préférées des clients

Nous pouvons rechercher les alertes de conduite et les fonctionnalités d'assistance que les clients ont appréciées à l'aide d'une requête en texte intégral, mais nous devons garder à l'esprit que le mot "Détecter" peut également être utilisé comme alternative aux "Alertes" comme suit :

--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)
')

Les résultats de la requête en texte intégral ci-dessus sont les suivants :

Ainsi, à l'aide d'une requête en texte intégral, nous avons trouvé la réponse à la première question commerciale sur les types de fonctionnalités et d'alertes préférées par les clients.

On pourrait donc en conclure que les clients ont apprécié les types d'alertes et de fonctions d'assistance à la conduite suivants :

  1. Alerte de changement de voie
  2. Hill Assist
  3. Détection des collisions
  4. Alerte de pression des pneus

Rechercher des clients qui aiment toutes les alertes de conduite et les fonctionnalités d'assistance

Une question un peu plus compliquée est de savoir combien de clients ont aimé toutes les fonctionnalités et alertes d'assistance à la conduite, et cela peut être répondu par une requête en texte intégral comme suit :

--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)
)')

Le résultat est le suivant :

Ainsi, il y a quatre commandes où les clients ont aimé à la fois les fonctionnalités d'assistance à la conduite et les alertes.

Analyse basée sur l'âge des clients qui ont aimé les fonctionnalités d'assistance à la conduite et d'alertes

Pour en savoir plus, nous essaierons de comprendre les fonctionnalités d'aide à la conduite et les alertes que les clients ont appréciées en fonction de leur âge.

Vous pouvez également effectuer cela en utilisant la combinaison d'une requête en texte intégral et des fonctions analytiques fournies dans T-SQL comme suit :

-- 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

Le résultat est le suivant :

Veuillez consulter l'article The Art of Aggregating Data in SQL from Simple to Sliding Aggregations pour en savoir plus sur l'utilisation des fonctions analytiques dans T-SQL.

Résumé des résultats d'analyse

À la lumière de l'analyse ci-dessus à l'aide de la recherche en texte intégral, il est clair que les fonctionnalités d'aide à la conduite et d'alerte à la conduite que les clients ont appréciées appartiennent principalement à la tranche d'âge des 35 ans.

Ainsi, les clients âgés de 35 ans ont le plus aimé ces fonctionnalités, tandis que le client le plus jeune qui a aimé ces fonctionnalités a 18 ans.

Le client le plus âgé qui a aimé ces fonctionnalités a 52 ans.

On peut déduire de l'analyse ci-dessus que la plupart des clients âgés de 18 à 52 ans ont apprécié les fonctionnalités d'assistance à la conduite et d'alerte à la conduite, alors que les clients qui ont préféré ces fonctionnalités aux autres ont 35 ans.

Félicitations, vous avez appris à effectuer une analyse de produit légèrement complexe à l'aide de la recherche en texte intégral.

Choses à faire

Maintenant que vous pouvez effectuer l'analyse du produit avec la recherche en texte intégral, je vous encourage à essayer ce qui suit :

  1. Essayez d'obtenir des informations corrélées en trouvant les clients qui ont aimé les capteurs et les fonctions d'aide à la conduite, mais pas les alertes lorsqu'ils ont acheté la ou les voitures.
  2. Gardant cet article à l'esprit, recherchez les clients qui ont aimé les alertes, mais pas les fonctionnalités d'aide à la conduite.
  3. Essayez d'effectuer une analyse basée sur l'âge des clients pour les capteurs similaires à celle que nous avons effectuée pour les fonctions d'assistance à la conduite et d'alerte.