Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Lakukan Analisis Produk menggunakan Pencarian Teks Lengkap SQL Server. Bagian 1

Artikel ini membahas cara melakukan analisis produk dasar menggunakan Pencarian Teks Lengkap.

Selain itu, pembaca akan mempelajari beberapa contoh praktis analisis produk terkait penjualan dengan bantuan kueri Teks Lengkap.

Singkatnya, artikel ini menekankan pentingnya Pencarian Teks Lengkap, memberikan wawasan tentang data, bersama dengan menjawab banyak pertanyaan penjualan dari sudut pandang bisnis tanpa perlu mengadopsi metodologi yang lebih canggih, yang memang memiliki manfaatnya.

Tentang Analisis Produk

Mari kita lihat analisis produk terlebih dahulu.

Apa itu analisis produk?

Analisis produk dari sudut pandang bisnis adalah metode menganalisis produk Anda dan (data) penjualannya sedemikian rupa sehingga membantu Anda memahami kekuatan dan kelemahan produk Anda.

Misalnya, manajemen puncak perusahaan penjualan mobil mungkin ingin mengetahui semua fitur mobil yang terkait dengan keselamatan, keamanan, dan sensor untuk menjadikannya nilai jual yang kuat untuk mobil mereka.

Contoh lain adalah ketika sebuah bisnis mungkin tertarik untuk melihat semua produk yang dijual selama musim hujan yang mengandung 'hujan', 'tahan pancuran' atau 'tahan air' (dalam deskripsi) untuk memahami apakah pelanggan ingin membeli produk baru untuk musim hujan. musim (dari mereka) atau tidak.

Mengapa analisis produk diperlukan?

Analisis produk adalah kunci sukses menjalankan bisnis, dan dapat membantu memunculkan plus dan minus bisnis.

Ini juga dapat membantu bisnis untuk membuat keputusan yang lebih baik berdasarkan pembelian yang ada.

Selain itu, analisis produk dapat membantu bisnis dalam memahami tren bisnis dan ke arah mana mereka menuju.

Bagaimana cara melakukan analisis produk?

Untuk satu hal, cara dasar menganalisis produk Anda adalah dengan menjalankan kueri SQL terhadap database yang berisi produk dan data penjualannya.

Namun, cara yang lebih baik untuk mendapatkan lebih banyak informasi adalah dengan menggunakan Pencarian Teks Lengkap untuk mengkueri database penjualan Anda karena menawarkan kriteria pencarian yang ditingkatkan yang tidak tersedia dalam kueri SQL umum.

Analisis produk dengan batasan Pencarian Teks Lengkap

Meskipun analisis produk yang cukup baik dapat dilakukan dengan Pencarian Teks Lengkap, namun memiliki keterbatasannya sendiri.

Untuk analisis dan pelaporan data yang lebih fleksibel dan mendalam yang didukung oleh infrastruktur yang dibuat khusus, Anda harus mengembangkan Solusi Gudang Data Business Intelligence.

Prasyarat

Silakan ikuti prasyarat untuk melakukan analisis produk menggunakan Pencarian Teks Lengkap yang akan datang nanti di artikel ini.

Keterampilan T-SQL yang kuat

Artikel ini mengharapkan pembaca (berniat untuk menerapkan analisis produk) untuk memiliki keterampilan T-SQL yang kuat dan dapat dengan nyaman menulis dan menjalankan kueri SQL terhadap database.

Pemahaman dasar dan lanjutan tentang Pencarian Teks Lengkap

Artikel ini mengasumsikan bahwa pembaca yang ingin menerapkan panduan menggunakan Pencarian Teks Lengkap memiliki pemahaman yang cukup baik tentang Pencarian Teks Lengkap dan kegunaannya.

Silakan merujuk ke artikel Menerapkan Pencarian Teks Lengkap di SQL Server 2016 untuk Pengguna Tingkat Lanjut untuk mendapatkan pemahaman tingkat lanjut tentang Pencarian Teks Lengkap jika Anda sudah terbiasa dengan dasar-dasarnya.

Namun, silakan baca artikel Menerapkan Pencarian Teks Lengkap di SQL Server 2016 untuk pemula jika Anda perlu mengembangkan pemahaman dasar sebelum memulai penggunaan Pencarian Teks Lengkap tingkat lanjut.

Pencarian Teks Lengkap Terpasang

Selain itu, artikel ini mengharapkan Anda untuk menginstal Pencarian Teks Lengkap pada instance SQL Anda.

Silakan instal Pencarian Teks Lengkap ke server SQL sebagai berikut:

  1. Jalankan Pemasang SQL.
  2. Jalankan File Pengaturan.
  3. Tambahkan sebagai Fitur.
  4. Pilih Server Anda Saat Ini.
  5. Pilih Fitur Instance yang akan ditambahkan.

Silakan merujuk ke artikel Menerapkan Pencarian Teks Lengkap di SQL Server 2016 untuk pemula untuk mendapatkan informasi rinci tentang langkah-langkah yang disebutkan di atas.

Terakhir, periksa status Pencarian Teks Lengkap dengan menjalankan skrip T-SQL berikut pada database master:

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

Outputnya harus sebagai berikut (jika Pencarian Teks Lengkap berhasil diinstal):

Menyiapkan Pencarian Teks Lengkap untuk Analisis Produk

Bersiaplah untuk menjalankan kueri Teks Lengkap untuk melakukan analisis produk setelah menyiapkan database sampel.

Siapkan database sampel (CarPlus)

Harap siapkan database sampel yang disebut CarPlus sebagai berikut:

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

Identifikasi produk

Contoh CarPlus database berisi informasi berikut, yang disimpan dalam satu tabel untuk menyederhanakan kompleksitas struktural database dan untuk sepenuhnya fokus pada analisis produk:

  1. Nomor Pesanan (untuk mobil yang dibeli)
  2. Usia pelanggan membeli produk (mobil)
  3. Fitur (dari mobil) yang disukai pelanggan

Harap dicatat bahwa produk yang kami pilih untuk analisis dalam artikel ini adalah mobil yang dibeli oleh pelanggan.

Namun, kita mungkin lebih tertarik pada fitur yang disukai pelanggan saat membeli mobil karena fitur ini memiliki informasi penting untuk bisnis.

Pesanan Mobil tabel database direpresentasikan sebagai berikut:

Buat katalog Teks Lengkap

Langkah pertama setelah database sampel (CarPlus) telah dibuat dan berhasil diisi adalah membuat Katalog Teks Lengkap.

Ini memungkinkan untuk mengimplementasikan Pencarian Teks Lengkap.

Silakan buat Katalog Teks Lengkap dengan menjalankan skrip T-SQL berikut pada database sampel:

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

Tentukan indeks Teks Lengkap pada kolom FeaturesLiked

Sejak FiturDisukai kolom akan menjadi kolom pusat yang digunakan dalam analisis produk, kita harus mendefinisikan Indeks Teks Lengkap untuk menjalankan kueri Teks Lengkap.

Tulis skrip T-SQL berikut untuk menentukan Indeks Teks Lengkap:

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

Harap diperhatikan bahwa Anda hanya dapat menentukan indeks teks lengkap pada satu kolom tabel, jadi pilihlah dengan sangat bijak.

Total pesanan berdasarkan usia pelanggan

Mari kita lakukan analisis cepat untuk melihat berapa banyak mobil yang terjual kepada pelanggan dari kelompok usia tertentu dengan menjalankan skrip berikut:

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

Outputnya adalah sebagai berikut:

Analisis akan menjadi lebih menarik ketika kita menerapkan Pencarian Teks Lengkap.

Analisis Fitur Keselamatan Anak (Pencarian Teks Lengkap)

Perusahaan ingin mengetahui fitur keselamatan anak yang disukai pelanggan saat mereka membeli mobil.

Menemukan 3 fitur keselamatan anak teratas yang disukai pelanggan

Mari kita temukan 3 fitur keselamatan anak teratas yang disukai pelanggan saat mereka membeli mobil, dan ini dapat ditemukan dengan menggunakan Pencarian Teks Lengkap sebagai berikut:

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

Hasilnya adalah sebagai berikut:

Menemukan fitur keselamatan anak selain Isofix dan Kunci Pengaman

Namun, untuk memastikan bahwa ini adalah satu-satunya dua fitur keselamatan anak yang disukai pelanggan yang membeli mobil (di musim ini), kami perlu mengubah kueri Teks Lengkap untuk memeriksa apakah ada fitur keselamatan anak lainnya:

Untuk menemukannya, jalankan kueri Pencarian Teks Lengkap berikut:

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

Outputnya adalah sebagai berikut:

Ringkasan Hasil Analisis

Berdasarkan keluaran di atas, kita dapat dengan mudah mengatakan bahwa pelanggan menyukai fitur keselamatan anak berikut:

  1. Fitting kursi anak ISOfix
  2. Kunci Pengaman Anak

Kita sekarang memiliki dua kemungkinan berikut:

  1. Ini adalah satu-satunya fitur keselamatan anak yang ditawarkan bisnis ini.
  2. Ada beberapa fitur keselamatan anak lain yang ditawarkan oleh bisnis ini, tetapi pelanggan tidak menyukainya saat membeli mobil.

Berdasarkan hasil, kami harus memastikan fitur keselamatan anak ini tidak akan diganti atau dikecualikan di musim berikutnya karena tampaknya menjadi nilai jual yang kuat untuk bisnis ini.

Analisis Fitur Rem

Hal berikutnya yang harus dilihat oleh bisnis adalah jenis fitur apa yang terkait dengan rem yang disukai pelanggan sehingga dapat fokus pada fitur tersebut di penjualan mendatang.

Telusuri fitur rem yang disukai pelanggan

Untuk menemukan 5 fitur terkait rem teratas yang disukai pelanggan, kami dapat menjalankan kueri Teks Lengkap berikut:

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

Outputnya adalah sebagai berikut:

Ringkasan Hasil Analisis

Dari hasil query Full-Text di atas, kita sekarang mengetahui bahwa fitur-fitur terkait rem yang disukai pelanggan pada saat membeli mobil adalah sebagai berikut:

  1. Sistem Pengereman Anti-lock Tingkat Lanjut
  2. Rem Cakram Tingkat Lanjut

Tampaknya dari sekian banyak fitur yang terkait dengan rem, musim ini, pelanggan memilih dua di atas, dan mungkin beberapa informasi lainnya dapat membantu bisnis meningkatkan keputusan mereka di masa mendatang.

Selamat, Anda telah berhasil mempelajari cara melakukan analisis produk menggunakan Pencarian Teks Lengkap.

Tetap terhubung karena Bagian 2 artikel ini berisi bentuk analisis produk yang sedikit lebih maju menggunakan Pencarian Teks Lengkap.

Hal yang harus dilakukan

Sekarang Anda dapat melakukan analisis produk dengan Pencarian Teks Lengkap, coba yang berikut ini:

  1. Coba dapatkan informasi terkait dengan mencari pelanggan yang menyukai fitur rem dan keselamatan anak saat membeli mobil.
  2. Dengan mengingat artikel ini, cari pelanggan yang menyukai Fitur kursi anak ISOfix fitur tetapi bukan Kunci Pengaman Anak fitur.
  3. Coba cari pelanggan yang tidak menyukai Rem Cakram Tingkat Lanjut tetapi menyukai Sistem Pengereman Anti-lock Lanjutan .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki "Setidaknya salah satu argumen untuk COALESCE harus berupa ekspresi yang bukan konstanta NULL" di SQL Server

  2. Lewati tabel sebagai parameter ke sql server UDF

  3. Pernyataan ALTER TABLE bertentangan dengan batasan FOREIGN KEY

  4. Skrip yang Ditingkatkan yang Mengembalikan Semua Properti dari SERVERPROPERTY() di SQL Server

  5. Mengapa tipe SQL Server DATETIME menghemat waktu dalam waktu 1/300 detik?