Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Aprenda a executar análise de produto com pesquisa de texto completo do SQL Server. Parte 2


Este artigo é dedicado a uma análise de produto um pouco mais complexa com a Pesquisa de Texto Completo, em oposição à primeira parte em que analisamos como realizar uma análise básica de produto.

Aqui, os leitores vão implementar alguns exemplos abrangentes de análise de produtos do ponto de vista de vendas com a ajuda de consultas de texto completo.

Este artigo revela a força das consultas de texto completo quando usadas com funções analíticas na execução de uma análise de produto.

Pré-requisitos


Sugiro que você siga os pré-requisitos deste artigo antes de começar a implementar exemplos de análise de produto.

Parte 1. Fundamentos


Presumimos que você tenha passado por Aprender a realizar análise de produto usando a pesquisa de texto completo do SQL Server. Parte 1 e ter a capacidade de realizar uma análise básica do produto com a ajuda dos exemplos mencionados na primeira parte.

Compreensão de T-SQL e pesquisa de texto completo


Para se sentir confortável ao ler este artigo, recomendamos que os leitores tenham uma boa compreensão dos scripts T-SQL e da pesquisa de texto completo.

Consulte Implementando a pesquisa de texto completo no SQL Server 2016 para usuários avançados para obter uma compreensão de nível avançado da pesquisa de texto completo, desde que você já esteja familiarizado com seus conceitos básicos. Ainda assim, recomendamos ler o artigo Implementando a pesquisa de texto completo no SQL Server 2016 para iniciantes se você precisar desenvolver um entendimento básico antes de prosseguir com os usos avançados da pesquisa de texto completo.

Pesquisa de texto completo instalada


Para continuar com o artigo, verifique se você instalou a pesquisa de texto completo em sua instância do SQL.

Siga estas etapas para instalar a pesquisa de texto completo no servidor SQL:
  1. Execute o SQL Installer.
  2. Execute o arquivo de configuração.
  3. Adicione como um recurso.
  4. Escolha seu servidor atual.
  5. Selecione o recurso de instância a ser adicionado.

Você também pode consultar o artigo Implementando a pesquisa de texto completo no SQL Server 2016 para iniciantes para obter informações detalhadas sobre as etapas mencionadas acima.

Banco de dados de amostra (CarPlus)


Você deve seguir as instruções da primeira parte se ainda não tiver configurado o banco de dados de amostra. Observe que você terá que configurar o CarPlus banco de dados de amostra para implementar os exemplos neste artigo.

Catálogo de texto completo e índice de texto completo


Também esperamos que você defina o catálogo Full-Text e o índice Full-Text na coluna FeaturesLiked.

Consulte Aprenda a executar análise de produto usando a pesquisa de texto completo do SQL Server. Parte 1 para executar as etapas acima, a menos que você já as tenha concluído.

Análise 1:pesquisa de texto completo para sensores


Digamos que tivéssemos vários sensores prontos para uso fornecidos com o carro e, agora, a alta administração está ansiosa para saber as seguintes coisas:
  1. Os clientes que compraram os carros gostaram de algum sensor pronto para uso?
  2. De que tipo de sensores eles gostaram?
  3. De quantos sensores de um tipo específico eles gostaram?
  4. Podemos comparar todos os diferentes sensores que os clientes gostaram?

Você pode encontrar as respostas para todas essas perguntas com a ajuda da Pesquisa de Texto Completo.

Pesquisar sensores preferidos pelos clientes


Para saber se os clientes gostaram de algum dos sensores do carro quando fizeram seus pedidos, temos que executar uma consulta de texto completo da seguinte forma:
--View Orders where customers liked Sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor')

Em seguida, você verá os seguintes resultados:

Uma coisa é certa:os clientes gostaram de sensores prontos para uso quando compraram seus carros. Isso porque a pesquisa de texto completo para sensores retornou vários resultados.

A pesquisa informa que temos pelo menos dois tipos de sensores que os clientes gostaram:
  1. Sensor de toque
  2. Sensor de estacionamento reverso

É seguro dizer que os clientes gostaram pelo menos dos tipos de sensores mencionados acima.

Pesquisando todos os sensores de estacionamento preferidos pelos clientes


Agora, precisamos usar a pesquisa de texto completo para encontrar todos os tipos de sensores de estacionamento que nossos clientes gostaram.

Podemos descobrir isso usando NEAR com os seguintes termos de pesquisa (da seguinte forma):
--View Orders where customers liked parking sensors
SELECT
FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor NEAR Parking')

A saída é a seguinte:

Como resultado, parece haver sete desses casos em que os clientes gostaram do Sensor de estacionamento . No entanto, precisamos ir mais fundo para obter mais informações.

Pesquisar sensores que não sejam sensores de estacionamento preferidos pelos clientes


Agora, gostaríamos de conhecer o outro lado da história, ou seja, descobrir quais clientes gostaram dos sensores além do Sensor de estacionamento .

Use a seguinte consulta de texto completo para pesquisar os sensores que os clientes gostaram além de Sensor de estacionamento :
--View Orders where customers liked other than parking sensors
SELECT 
CarOrderId
,FeaturesLiked 
FROM dbo.CarOrder 
WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Parking')

Os resultados da consulta de texto completo acima são os seguintes:

Além do Sensor de estacionamento, os clientes gostaram do Sensor de toque .

Comparação de sensores de estacionamento com sensores de toque e com outros sensores


A próxima grande coisa é ver se podemos comparar Sensor de estacionamento com Sensor de toque com outros tipos de sensores que os clientes gostavam quando faziam seus pedidos para comprar um carro.

Também precisamos saber o número total de pedidos feitos nesta temporada para tornar a comparação mais interessante.

No entanto, isso não é suficiente. Também precisamos entender a porcentagem de semelhança entre os sensores.

Você pode descobrir isso usando uma consulta de texto completo com a ajuda de variáveis ​​e agregações T-SQL da seguinte forma:
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

A saída pode ser vista da seguinte forma:

Resumo dos resultados da análise


Podemos concluir que os clientes preferiram o carro Sensor de toque recurso sobre o Sensor de estacionamento reverso característica. No entanto, eles foram os únicos sensores que os clientes gostaram. E o recurso que eles mais gostaram, que é o Sensor de Toque, ocupa apenas 23% de todos os recursos que eles gostaram.

Análise 2:pesquisa de texto completo para alertas e assistência ao motorista


Se agora assumirmos que foi durante esta temporada que a empresa de fabricação de automóveis introduziu alguns recursos de assistência à condução, incluindo alguns alertas.

A empresa gostaria de saber as seguintes coisas:
  1. De que tipos de alertas de direção e recursos de assistência os clientes gostaram?
  2. Quantos clientes gostaram da combinação de alertas e recursos de assistência?
  3. Podemos realizar uma análise com base na idade dos clientes que gostaram dos alertas e dos recursos de assistência?

Pesquisar alertas de direção e recursos de assistência preferidos pelos clientes


Podemos pesquisar alertas de direção e recursos de assistência que os clientes gostaram usando uma consulta de texto completo, mas devemos ter em mente que a palavra "Detectar" também pode ser usado como uma alternativa para “Alertas” do seguinte modo:
--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)
')

Os resultados da consulta de texto completo acima são os seguintes:

Assim, usando uma consulta de texto completo, encontramos a resposta para a primeira pergunta comercial sobre os tipos de recursos e alertas preferidos pelos clientes.

Concluiu-se, assim, que os clientes gostaram dos seguintes tipos de alertas de condução e funcionalidades de assistência:
  1. Alerta de mudança de faixa
  2. Assistência em subidas
  3. Detecção de colisão
  4. Alerta de pressão dos pneus

Pesquisar clientes que gostam de todos os alertas de direção e recursos de assistência


Uma questão um pouco mais complicada é descobrir quantos clientes gostaram de todos os recursos e alertas de assistência à condução, e isso pode ser respondido por uma consulta de texto completo da seguinte forma:
--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)
)')

A saída é a seguinte:

Portanto, há quatro pedidos em que os clientes gostaram tanto dos recursos de assistência à condução quanto dos alertas.

Análise com base na idade dos clientes que gostaram dos recursos de assistência e alertas de direção


Para obter mais informações, tentaremos entender os recursos e alertas de assistência à condução que os clientes gostaram com base na idade.

Você também pode fazer isso usando a combinação de uma consulta de texto completo e funções analíticas fornecidas no T-SQL da seguinte maneira:
-- 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

A saída é a seguinte:

Consulte o artigo The Art of Aggregating Data in SQL from Simple to Sliding Aggregations para saber mais sobre como usar funções analíticas em T-SQL.

Resumo dos resultados da análise


À luz da análise acima com Full-Text Search, fica claro que os recursos de assistência à condução e alerta de condução que os clientes mais gostaram pertencem principalmente à faixa etária de 35 anos.

Assim, os clientes com 35 anos gostaram mais desses recursos, enquanto o cliente mais jovem que gostou desses recursos tem 18 anos.

O cliente mais antigo que gostou desses recursos tem 52 anos.

Da análise anterior pode inferir-se que a maioria dos clientes com idades compreendidas entre os 18 e os 52 anos usufruiu das funcionalidades de assistência à condução e alerta de condução, sendo que os clientes que gostaram mais destas funcionalidades do que outros têm 35 anos.

Parabéns, você aprendeu com sucesso como realizar uma análise de produto um pouco complexa usando a pesquisa de texto completo.

O que fazer


Agora que você pode fazer a análise do produto com a pesquisa de texto completo, recomendo que você tente o seguinte:
  1. Tente obter informações correlacionadas encontrando os clientes que gostaram dos dois sensores e dos recursos de assistência à direção, mas não dos alertas quando compraram o(s) carro(s).
  2. Lembrando-se deste artigo, pesquise os clientes que gostaram dos alertas, mas não dos recursos de assistência à direção.
  3. Tente realizar uma análise com base na idade dos clientes para os sensores semelhantes ao que realizamos para recursos de alerta e assistência ao motorista.