sql >> Base de Datos >  >> RDS >> Sqlserver

Aprenda a realizar análisis de productos con la búsqueda de texto completo de SQL Server. Parte 2

Este artículo está dedicado a un análisis de productos un poco más complejo con la búsqueda de texto completo, a diferencia de la primera parte en la que vimos cómo realizar un análisis básico de productos.

Aquí, los lectores implementarán algunos ejemplos completos de análisis de productos desde el punto de vista de las ventas con la ayuda de consultas de texto completo.

Este artículo revela la fuerza de las consultas de texto completo cuando se usan con funciones analíticas para realizar un análisis de productos.

Requisitos previos

Le sugiero que revise los requisitos previos de este artículo antes de comenzar a implementar ejemplos de análisis de productos.

Parte 1. Elementos básicos

Suponemos que ha realizado Aprenda a realizar análisis de productos mediante la búsqueda de texto completo de SQL Server. Parte 1 y tener la capacidad de realizar un análisis básico del producto con la ayuda de los ejemplos mencionados en la primera parte.

Comprensión de T-SQL y búsqueda de texto completo

Para sentirse cómodo mientras lee este artículo, recomendamos a los lectores que comprendan bien los scripts T-SQL y la búsqueda de texto completo.

Consulte Implementación de la búsqueda de texto completo en SQL Server 2016 para usuarios avanzados para obtener una comprensión de nivel avanzado de la búsqueda de texto completo, siempre que ya esté familiarizado con sus conceptos básicos. Aún así, le recomendamos que lea el artículo Implementación de la búsqueda de texto completo en SQL Server 2016 para principiantes si necesita desarrollar una comprensión básica antes de continuar con los usos avanzados de la búsqueda de texto completo.

Búsqueda de texto completo instalada

Para continuar correctamente con el artículo, asegúrese de haber instalado la búsqueda de texto completo en su instancia de SQL.

Siga estos pasos para instalar la búsqueda de texto completo en el servidor SQL:

  1. Ejecute el instalador de SQL.
  2. Ejecutar archivo de configuración.
  3. Agregar como característica.
  4. Elija su servidor actual.
  5. Seleccione la función de instancia que desea agregar.

También puede consultar el artículo Implementación de la búsqueda de texto completo en SQL Server 2016 para principiantes para obtener información detallada sobre los pasos mencionados anteriormente.

Base de datos de muestra (CarPlus)

Debe seguir las instrucciones de la primera parte si aún no ha configurado la base de datos de muestra. Tenga en cuenta que tendrá que configurar el CarPlus base de datos de ejemplo para implementar los ejemplos de este artículo.

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

También esperamos que defina el catálogo de texto completo y el índice de texto completo en la columna FeaturesLiked.

Consulte Aprenda a realizar análisis de productos mediante la búsqueda de texto completo de SQL Server. Parte 1 para realizar los pasos anteriores a menos que ya los haya completado.

Análisis 1:Búsqueda de texto completo para sensores

Digamos que teníamos varios sensores listos para usar con el automóvil, y ahora, la alta gerencia está ansiosa por saber lo siguiente:

  1. ¿A los clientes que compraron los autos les gustó algún sensor listo para usar?
  2. ¿Qué tipo de sensores les gustaron?
  3. ¿Cuántos sensores de un tipo en particular les gustaron?
  4. ¿Podemos comparar todos los diferentes sensores que les gustaron a los clientes?

Puede encontrar las respuestas a todas estas preguntas con la ayuda de la búsqueda de texto completo.

Buscar sensores preferidos por los clientes

Para saber si a los clientes les gustó alguno de los sensores del automóvil cuando hicieron sus pedidos, tenemos que ejecutar una consulta de texto completo de la siguiente manera:

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

A continuación, verá los siguientes resultados:

Una cosa es cierta:a los clientes les gustaron los sensores listos para usar cuando compraron sus autos. Esto se debe a que la búsqueda de texto completo para sensores arrojó una serie de resultados.

La búsqueda informa que tenemos al menos dos tipos de sensores que gustaron a los clientes:

  1. Sensor táctil
  2. Sensor de aparcamiento marcha atrás

Es seguro decir que a los clientes les gustaron al menos los tipos de sensores mencionados anteriormente.

Buscar todos los sensores de aparcamiento preferidos por los clientes

Ahora, necesitamos usar la búsqueda de texto completo para encontrar todos los tipos de Sensores de estacionamiento que les gustaba a nuestros clientes.

Podemos averiguarlo usando NEAR con los siguientes términos de búsqueda (como sigue):

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

La salida es la siguiente:

Como resultado, parece haber siete de esos casos en los que a los clientes les gustó Sensor de estacionamiento . Sin embargo, necesitamos profundizar más para obtener más información.

Buscar sensores distintos a los sensores de estacionamiento preferidos por los clientes

Ahora, nos gustaría conocer la otra cara de la historia, es decir, saber a qué clientes les gustaron los sensores distintos al Sensor de Aparcamiento .

Use la siguiente consulta de texto completo para buscar los sensores que les gustaron a los clientes además de Sensor de estacionamiento :

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

Los resultados de la consulta de texto completo anterior son los siguientes:

Aparte de Sensor de aparcamiento, a los clientes les gustó Sensor táctil .

Comparación de sensores de aparcamiento con sensores táctiles y con otros sensores

El próximo gran paso es ver si podemos comparar Sensor de estacionamiento con sensor táctil con otro tipo de sensores que gustaban a los clientes cuando hacían sus pedidos para comprar un coche.

También necesitamos saber el número total de pedidos realizados esta temporada para que la comparación sea más interesante.

Sin embargo, esto no es suficiente. También necesitamos entender el porcentaje de similitud entre los sensores.

Puede averiguarlo mediante una consulta de texto completo con la ayuda de variables y agregaciones de T-SQL de la siguiente manera:

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 salida se puede ver de la siguiente manera:

Resumen de los resultados del análisis

Podemos concluir que los clientes prefirieron el coche Sensor táctil característica sobre el Sensor de estacionamiento en reversa rasgo. Sin embargo, eran los únicos sensores que gustaban a los clientes. Y la función que más les gustó, que es Touch Sensor, solo ocupa el 23 por ciento de todas las funciones que les gustaron.

Análisis 2:búsqueda de texto completo para asistencia y alertas a la conducción

Si ahora asumimos que fue durante esta temporada que la compañía de fabricación de automóviles introdujo un par de funciones de asistencia a la conducción, incluidas algunas alertas.

A la empresa le gustaría saber lo siguiente:

  1. ¿Qué tipos de alertas de conducción y funciones de asistencia les gustaron a los clientes?
  2. ¿A cuántos clientes les gustó la combinación de alertas y funciones de asistencia?
  3. ¿Podemos realizar un análisis basado en la edad de los clientes a los que les gustaron las alertas y las funciones de asistencia?

Búsqueda de alertas de conducción y funciones de asistencia preferidas por los clientes

Podemos buscar alertas de conducción y funciones de asistencia que les gustaron a los clientes mediante una consulta de texto completo, pero debemos tener en cuenta que la palabra “Detectar” también se puede utilizar como alternativa a "Alertas" de la siguiente manera:

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

Los resultados de la consulta de texto completo anterior son los siguientes:

Entonces, usando una consulta de texto completo, hemos encontrado la respuesta a la primera pregunta comercial sobre los tipos de funciones y alertas preferidas por los clientes.

Por lo tanto, se puede concluir que a los clientes les gustaron los siguientes tipos de alertas de conducción y funciones de asistencia:

  1. Alerta de cambio de carril
  2. Asistencia en pendientes
  3. Detección de colisiones
  4. Alerta de presión de neumáticos

Buscar clientes a los que les gusten todas las alertas de conducción y funciones de asistencia

Una pregunta un poco más complicada es averiguar a cuántos clientes les gustaron todas las funciones y alertas de asistencia a la conducción, y esto se puede responder con una consulta de texto completo de la siguiente manera:

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

La salida es la siguiente:

Por lo tanto, hay cuatro pedidos en los que a los clientes les gustaron tanto las alertas como las funciones de asistencia a la conducción.

Análisis basado en la edad de los clientes a los que les gustaron las funciones de asistencia a la conducción y alertas

Para obtener más información, intentaremos comprender las funciones y alertas de asistencia a la conducción que les gustaron a los clientes en función de su edad.

También puede realizar esto mediante la combinación de una consulta de texto completo y funciones analíticas proporcionadas en T-SQL de la siguiente manera:

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

La salida es la siguiente:

Consulte el artículo The Art of Aggregating Data in SQL from Simple to Sliding Aggregations para obtener más información sobre cómo usar funciones analíticas en T-SQL.

Resumen de los resultados del análisis

A la luz del análisis anterior utilizando la búsqueda de texto completo, está claro que las funciones de asistencia a la conducción y alerta de conducción que más les gustaron a los clientes pertenecen al grupo de edad de 35 años.

Por lo tanto, a los clientes de 35 años les gustaron más estas funciones, mientras que el cliente más joven al que le gustaron estas funciones tiene 18 años.

El cliente más antiguo al que le gustaron estas funciones tiene 52 años.

Se puede inferir del análisis anterior que la mayoría de los clientes de entre 18 y 52 años disfrutaron de las funciones de asistencia a la conducción y alerta de conducción, mientras que los clientes a los que les gustaron estas funciones más que otros tienen 35 años.

Felicitaciones, ha aprendido con éxito cómo realizar un análisis de producto ligeramente complejo mediante la búsqueda de texto completo.

Cosas que hacer

Ahora que puede realizar el análisis del producto con la búsqueda de texto completo, le recomiendo que pruebe lo siguiente:

  1. Trate de obtener información correlacionada al encontrar a los clientes a los que les gustaron los sensores y las funciones de asistencia a la conducción, pero no las alertas cuando compraron los autos.
  2. Teniendo en cuenta este artículo, busque a los clientes a los que les gustaron las alertas pero no las funciones de asistencia a la conducción.
  3. Intente realizar un análisis basado en la edad de los clientes para los sensores similar al que realizamos para las funciones de alerta y asistencia a la conducción.