Что касается технологии NL2SQL, то если вы недавно обратили внимание на круг ИИ, вы более или менее знаете о ней. Фактически, во многих бизнес-сценариях пользователи хотят получить окончательный эффект представления данных. Стоимость обучения тому, как получить данные, должна быть как можно меньше. Как мы все знаем, чем ниже стоимость обучения, тем выше уровень привлечения клиентов. Конечно, для нас, технических специалистов, речь идет больше о НИОКР. В конце концов, сервисы, которые мы разрабатываем, предназначены в основном для бизнес-сервисов. NL2SQL должен стать тенденцией развития данных в будущем. Поэтому нам, разработчикам данных, очень важно понимать эту концепцию, помимо освоения этой технологии.
NL2SQL (Natural Language to SQL) — это технология, сочетающая обработку естественного языка и запросы к базе данных. Она направлена на преобразование запросов, вводимых пользователями на естественном языке, в операторы запросов SQL, тем самым реализуя автоматическое взаимодействие между вопросами и ответами на естественном языке и базами данных. Согласно ежедневным отчетам предприятия, согласно идеям исследований и разработок, мы можем сначала получить текстовую информацию о клиенте через пользовательский интерфейс или интерфейс страницы, передать ее на сервер для хранения, а затем отобразить заказ на работу или прямой запрос к базе данных, написанной разработчиком данных на языке SQL, получают окончательные результаты запроса, а затем данные отображаются визуально.
Итак, согласно концепции NL2SQL, весь процесс запроса данных можно значительно упростить. Прежде всего, пользователям больше не нужно выполнять сложный выбор страниц или отправку форм или даже иметь какое-либо представление о структуре базы данных и языке SQL. Пользователи могут напрямую вводить вопросы на естественном языке во внешнем интерфейсе, например «запросить отчет о продажах за прошлый месяц» или «отобразить состояние запасов всех продуктов в 2023 году», и система автоматически передаст эти вопросы на естественном языке в серверную часть.
На заднем плане, Технология NL2SQL будет анализировать вводимые пользователем данные на естественном языке, определять намерение и ключевые слова и автоматически генерировать соответствующие операторы SQL-запроса на основе конкретной модели базы данных. Этот процесс включает в себя обработку естественного языка (НЛП), семантический анализ, Сопоставление схемы базы данные и многие другие основные технологии. с помощью этих технологий,Система может понять потребности пользователя,и генерировать точные операторы SQL,Чтобы напрямую запросить базу данных,Получите данные.
Результат запроса также можно напрямую вернуть во внешний интерфейс для отображения.,Или используйте инструменты визуализации данных для графического представления. Этот метод позволяет избежать утомительных шагов по написанию SQL-запросов вручную для разработчиков данных с помощью мобильного метода.,Улучшена скорость ответа. Что важнее,Пользователям больше не нужно полагаться на технический персонал при запросе данных.,Вместо этого вы можете получить то, что хотите, в режиме реального времени. Это не только снижает затраты на обучение,Это также может значительно улучшить удовлетворенность клиентов и качество обслуживания.
Возможно, люди до сих пор не понимают этого, просто говоря об этой концепции.,Например, рассмотрим следующий сценарий: предположим, менеджеру по продажам необходимо подготовить отчет об эффективности продаж компании перед ежемесячным собранием.,в целом,Весь процесс может включать в себя несколько запросов на помощь от аналитика данных или ИТ-команды.,писать SQL-запросы,Экспорт данных и создание отчетов。Тактрадиционный метод обычно:
SELECT product_name, SUM(sales_amount) AS total_sales
FROM sales
WHERE sale_date BETWEEN '2023-07-01' AND '2023-07-31'
GROUP BY product_name
ORDER BY total_sales DESC;
Этот метод связи требует нескольких шагов.,Сотрудничество с участием разных ролей,Особенно при множественных требованиях к запросу,Это может привести к повторному обмену данными и изменению SQL-запросов.
SELECT product_name, SUM(sales_amount) AS total_sales
FROM sales
WHERE sale_date BETWEEN '2023-07-01' AND '2023-07-31'
GROUP BY product_name
ORDER BY total_sales DESC;
Эффект сравнения очень очевиден. После использования NL2SQL процесс запроса автоматизируется, что значительно сокращает время получения данных. Менеджерам по продажам не нужно изучать язык SQL, и они могут выполнять сложные запросы, используя только естественный язык, что снижает технический порог. Более того, его можно проверять в режиме реального времени на основе эффекта, а запросы можно выполнять в любое время, больше не полагаясь на стыковку технической команды в режиме реального времени. Результаты запроса напрямую представляются в визуальной форме, что позволяет пользователям. для более интуитивного понимания данных и быстрого принятия бизнес-решений.
Пользователь вводит вопрос на естественном языке, например: «Найдите продукты с самыми высокими продажами в 2020 году». Сначала системе необходимо понять цель запроса, введенного пользователем. Естественный язык по своей сути неоднозначен, что делает его допускающим множественные интерпретации. двусмысленность — ключевая задача обработки естественного языка, обеспечивающая на практике точное общение между людьми и машинами. Это не всегда так. Конечный пользователь может не знать (полностью или частично) семантику столбца или таблицы. Поэтому самая большая проблема заключается в том, как точно найти информацию о конкретном поле таблицы. Использование NL2SQL неизбежно. Сильная бизнес-привязка требует четкого понимания набора данных в полевых условиях для обучения большой семантической модели.
В настоящее время популярные английские наборы данных включают WikiSQL, Spider, WikiTableQuestions, ATIS и т. д. Китайские наборы данных включают данные, опубликованные в ходе первого китайского конкурса NL2SQL, который только что завершился. Каждый набор данных имеет свои особенности, я не буду обсуждать их здесь подробно. Если вам интересно, вы можете изучить его самостоятельно.
По количеству таблиц базы данных, участвующих в SQL в наборе данных, он делится на одностандартные и многотабличные, в зависимости от того, содержит ли сформированная структура SQL вложенные запросы, набор данных делится на вложенный и невложенный; Есть очень интересный конкурс
Если вам интересно, вы можете взглянуть на работы-победители и наборы данных этого конкурса, и вы получите более четкое представление о работе и исследованиях NL2SQL.
Давайте рассмотрим всю логику генерации SQL в одном предложении реального языка.
напримерввод на естественном языке:
«Найдите все товары с объемом продаж более 10 миллионов в 2023 году и отсортируйте по продажам в порядке убывания».
Целевой SQL-запрос:
SELECT product_name, sales_amount
FROM sales
WHERE year = 2023 AND sales_amount > 10000000
ORDER BY sales_amount DESC;
Сначала система предварительно обрабатывает входной естественный язык для подготовки к последующим шагам семантического анализа.
Системе необходимо идентифицировать ключевые сущности в предложении, такие как время, число и произведение.
Система определяет намерение запроса пользователя.,То есть операция «запрос». Распознание намерений – вот ключевой шаг,Он определяет тип оператора SQL (запрос SELECT).
: запрос данных и фильтрация в соответствии с условиями.
Анализируйте структуру ввода естественного языка посредством синтаксического анализа, чтобы определить взаимосвязь между субъектами, предикатами, объектами и другими элементами. Целью здесь является определить, что объектом «поиск» является «продукт», а «продажи, превышающие 10 миллионов», являются условием фильтра.
Системе необходимо сопоставить сущности на естественном языке (например, «продукт», «продажи») с конкретными таблицами и полями в базе данных. Этот шаг требует, чтобы система понимала схему базы данных.
product_name
sales_amount
year
product_name
sales_amount
year
Система заполняет идентифицированную информацию в шаблон SQL. Здесь задача создания шаблона состоит в том, чтобы преобразовать структурную информацию, полученную из естественного языка, в каждое предложение оператора SQL (SELECT, FROM, WHERE, ORDER BY).
SQL-шаблон:
SELECT {Поле 1, Поле 2, ...}
FROM {поверхность}
WHERE {Условие 1} AND {Условие 2} ...
ORDER BY {поле сортировки} {Сортировать по};
Заполнить шаблон:
product_name, sales_amount
sales
year = 2023 AND sales_amount > 10000000
sales_amount DESC
результат:
SELECT product_name, sales_amount
FROM sales
WHERE year = 2023 AND sales_amount > 10000000
ORDER BY sales_amount DESC;
Здесь можно найти подсказку, которая сейчас общепризнана в отрасли:
system = """
Given the database schema below, generate a MySQL query based on the user's question. Ensure to consider totals from line items, inclusive date ranges, and correct data aggregation for summarization. Remember to handle joins, groupings, and orderings effectively.
Database schema:
- Customer (CustomerID, FirstName, LastName, Email, Phone, BillingAddress, ShippingAddress, CustomerSince, IsActive)
- Employee (EmployeeID, FirstName, LastName, Email, Phone, HireDate, Position, Salary)
- InventoryLog (LogID, ProductID, ChangeDate, QuantityChange, Notes)
- LineItem (LineItemID, SalesOrderID, ProductID, Quantity, UnitPrice, Discount, TotalPrice)
- Product (ProductID, ProductName, Description, UnitPrice, StockQuantity, ReorderLevel, Discontinued)
- SalesOrder (SalesOrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, Status, Comments, PaymentMethod, IsPaid)
- Supplier (SupplierID, CompanyName, ContactName, ContactTitle, Address, Phone, Email)
Guidelines for SQL query generation:
1. **Ensure Efficiency and Performance**: Opt for JOINs over subqueries where possible, use indexes effectively, and mention any specific performance considerations to keep in mind.
2. **Adapt to Specific Analytical Needs**: Tailor WHERE clauses, JOIN operations, and aggregate functions to precisely meet the analytical question being asked.
3. **Complexity and Variations**: Include a range from simple to complex queries, illustrating different SQL functionalities such as aggregate functions, string manipulation, and conditional logic.
4. **Handling Specific Cases**: Provide clear instructions on managing NULL values, ensuring date ranges are inclusive, and handling special data integrity issues or edge cases.
5. **Explanation and Rationale**: After each generated query, briefly explain why this query structure was chosen and how it addresses the analytical need, enhancing understanding and ensuring alignment with requirements.
-- 1. Average Order Total for Customers without a Registered Phone Number Within a Specific Period
SELECT AVG(TotalPrice) FROM LineItem
JOIN SalesOrder ON LineItem.SalesOrderID = SalesOrder.SalesOrderID
JOIN Customer ON SalesOrder.CustomerID = Customer.CustomerID
WHERE Customer.Phone IS NULL AND SalesOrder.OrderDate BETWEEN '2003-01-01' AND '2009-12-31';
-- Rationale: Analyzes spending behavior of uncontactable customers within a set timeframe, aiding targeted marketing strategies.
-- 2. List Top 10 Employees by Salary
SELECT * FROM Employee ORDER BY Salary DESC LIMIT 10;
-- Rationale: Identifies highest-earning employees for payroll analysis and salary budgeting.
-- 3. Find the Total Quantity of Each Product Sold Last Month
SELECT Product.ProductName, SUM(LineItem.Quantity) AS TotalQuantitySold
FROM Product
JOIN LineItem ON Product.ProductID = LineItem.ProductID
JOIN SalesOrder ON LineItem.SalesOrderID = SalesOrder.SalesOrderID
WHERE SalesOrder.OrderDate BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW()
GROUP BY Product.ProductID;
-- Rationale: Helps in inventory management by highlighting sales performance of products, informing restocking decisions.
-- 4. Show Sales by Customer for the Current Year, Including Customer Details
SELECT Customer.FirstName, Customer.LastName, SUM(LineItem.TotalPrice) AS TotalSales
FROM Customer
JOIN SalesOrder ON Customer.CustomerID = SalesOrder.CustomerID
JOIN LineItem ON SalesOrder.SalesOrderID = LineItem.SalesOrderID
WHERE YEAR(SalesOrder.OrderDate) = YEAR(CURDATE())
GROUP BY Customer.CustomerID;
-- Rationale: Identifies top customers based on yearly sales, supporting personalized customer service and loyalty programs.
-- 5. Identify Products That Need Reordering (Stock Quantity Below Reorder Level)
SELECT ProductName, StockQuantity, ReorderLevel FROM Product WHERE StockQuantity <= ReorderLevel;
-- Rationale: Essential for inventory control, prompting restocking of products to meet demand efficiently.
-- 6. Display All Suppliers That Have Not Supplied Any Products That Are Currently Discontinued
SELECT Supplier.CompanyName FROM Supplier
LEFT JOIN Product ON Supplier.SupplierID = Product.SupplierID
WHERE Product.Discontinued = 0
GROUP BY Supplier.SupplierID;
-- Rationale: Evaluates supplier contributions to the supply chain by focusing on those with active product lines.
Remember to adapt queries based on the actual question context, utilizing the appropriate WHERE clauses, JOIN operations, and aggregate functions to meet the specific analytical needs.
Sample records for the Supplier table:
- SupplierID: 29, CompanyName: Hogan-Anderson, ContactName: Sierra Carey, ContactTitle: Mining engineer, Address: 246 Johnny Fords Apt. 858, Williamsport, AK 96920, Phone: 232.945.6443, Email: rodney04@example.com
- SupplierID: 30, CompanyName: Nixon, Woods and Pearson, ContactName: Lawrence Phillips, ContactTitle: Aid worker, Address: USS Osborn, FPO AE 24294, Phone: 001-462-571-0185x478, Email: jessica29@example.org
Sample records for the Product table:
- ProductID: 1, ProductName: Reflect Sea, Description: Factor country center price pretty foreign theory paper fact machine two., UnitPrice: 191.19, StockQuantity: 665, ReorderLevel: 46, Discontinued: 1
- ProductID: 2, ProductName: Avoid American, Description: Skill environmental start set bring must job early per weight difficult someone., UnitPrice: 402.14, StockQuantity: 970, ReorderLevel: 15, Discontinued: 1
- ProductID: 3, ProductName: Evening By, Description: Whether high bill though each president another its., UnitPrice: 12.81, StockQuantity: 842, ReorderLevel: 32, Discontinued: 1
- ProductID: 4, ProductName: Certain Identify, Description: Spring identify bring debate wrong style hit., UnitPrice: 155.22, StockQuantity: 600, ReorderLevel: 27, Discontinued: 1
- ProductID: 5, ProductName: Impact Agreement, Description: Whom ready entire meeting consumer safe pressure truth., UnitPrice: 368.72, StockQuantity: 155, ReorderLevel: 35, Discontinued: 0
- ProductID: 6, ProductName: Million Agreement, Description: Glass why team yes reduce issue nothing., UnitPrice: 297.03, StockQuantity: 988, ReorderLevel: 36, Discontinued: 1
- ProductID: 7, ProductName: Foot Vote, Description: Anyone floor movie maintain TV new age prove certain really dog., UnitPrice: 28.75, StockQuantity: 828, ReorderLevel: 24, Discontinued: 0
- ProductID: 8, ProductName: Somebody Current, Description: Politics since exactly film idea Republican., UnitPrice: 202.9, StockQuantity: 317, ReorderLevel: 18, Discontinued: 0
- ProductID: 9, ProductName: Somebody Character, Description: Long agreement history administration purpose conference including., UnitPrice: 300.38, StockQuantity: 242, ReorderLevel: 30, Discontinued: 1
- ProductID: 10, ProductName: Low Idea, Description: Spend guess somebody spend fight director technology find between college skill., UnitPrice: 34.68, StockQuantity: 65, ReorderLevel: 27, Discontinued: 0
Use the above schema and sample records to generate syntactically correct SQL queries. For example, to query the list of discontinued products, or to find products below a certain stock quantity.
Sample records for the Employee table:
- EmployeeID: 1, FirstName: Danny, LastName: Morales, Email: catherine08@example.com, Phone: 001-240-574-6687x625, HireDate: 2021-06-16, Position: Medical technical officer, Salary: 36293
- EmployeeID: 2, FirstName: William, LastName: Spencer, Email: sthompson@example.com, Phone: (845)940-2095x693, HireDate: 2023-08-22, Position: English as a foreign language teacher, Salary: 51775
- EmployeeID: 3, FirstName: Brian, LastName: Stark, Email: hughesmelissa@example.com, Phone: 780.299.1965x06374, HireDate: 2023-02-24, Position: Pharmacologist, Salary: 11963
- EmployeeID: 4, FirstName: Sarah, LastName: Cannon, Email: brittney20@example.com, Phone: 512.717.8995x05793, HireDate: 2019-05-23, Position: Physiological scientist, Salary: 69878
- EmployeeID: 5, FirstName: Lance, LastName: Bell, Email: patrick57@example.net, Phone: +1-397-320-2600x803, HireDate: 2019-06-22, Position: Scientific laboratory technician, Salary: 56499
- EmployeeID: 6, FirstName: Jason, LastName: Larsen, Email: teresaharris@example.org, Phone: +1-541-955-5657x7357, HireDate: 2022-11-02, Position: Proofreader, Salary: 89756
- EmployeeID: 7, FirstName: Kyle, LastName: Baker, Email: nathanielmiller@example.net, Phone: +1-863-658-3715x6525, HireDate: 2019-10-30, Position: Firefighter, Salary: 96795
- EmployeeID: 8, FirstName: Jennifer, LastName: Hernandez, Email: sarah43@example.org, Phone: 267-588-3195, HireDate: 2021-01-10, Position: Designer, interior/spatial, Salary: 37584
- EmployeeID: 9, FirstName: Shane, LastName: Meyer, Email: perrystanley@example.org, Phone: 001-686-918-6486, HireDate: 2021-04-14, Position: Retail manager, Salary: 69688
- EmployeeID: 10, FirstName: Christine, LastName: Powell, Email: tanderson@example.org, Phone: 427.468.2131, HireDate: 2019-05-11, Position: Sports administrator, Salary: 39962
Use the above schema and sample records to generate syntactically correct SQL queries. For example, to query the top 10 employees by salary, or to find employees hired within a specific period.
Sample records for the Customer table:
- CustomerID: 1, FirstName: Sandra, LastName: Cruz, Email: rhonda24@example.net, Phone: 511-949-6987x21174, BillingAddress: "18018 Kyle Streets Apt. 606, Shaneville, AZ 85788", ShippingAddress: "18018 Kyle Streets Apt. 606, Shaneville, AZ 85788", CustomerSince: 2023-05-02, IsActive: 0
- CustomerID: 2, FirstName: Robert, LastName: Williams, Email: traciewall@example.net, Phone: 944-649-2491x60774, BillingAddress: "926 Mitchell Pass Apt. 342, Brianside, SC 83374", ShippingAddress: "926 Mitchell Pass Apt. 342, Brianside, SC 83374", CustomerSince: 2020-09-01, IsActive: 0
- CustomerID: 3, FirstName: John, LastName: Greene, Email: travis92@example.org, Phone: 279.334.1551, BillingAddress: "36019 Bill Manors Apt. 219, Dominiquefort, AK 55904", ShippingAddress: "36019 Bill Manors Apt. 219, Dominiquefort, AK 55904", CustomerSince: 2021-03-15, IsActive: 0
- CustomerID: 4, FirstName: Steven, LastName: Riley, Email: greennathaniel@example.org, Phone: +1-700-682-7696x189, BillingAddress: "76545 Hebert Crossing Suite 235, Forbesbury, MH 14227", ShippingAddress: "76545 Hebert Crossing Suite 235, Forbesbury, MH 14227", CustomerSince: 2022-12-05, IsActive: 0
- CustomerID: 5, FirstName: Christina, LastName: Blake, Email: christopher87@example.net, Phone: 584.263.4429, BillingAddress: "8342 Shelly Fork, West Chasemouth, CT 81799", ShippingAddress: "8342 Shelly Fork, West Chasemouth, CT 81799", CustomerSince: 2019-11-12, IsActive: 0
- CustomerID: 6, FirstName: Michael, LastName: Stevenson, Email: lynnwilliams@example.org, Phone: 328-637-4320x7025, BillingAddress: "7503 Mallory Mountains Apt. 199, Meganport, MI 81064", ShippingAddress: "7503 Mallory Mountains Apt. 199, Meganport, MI 81064", CustomerSince: 2024-01-01, IsActive: 1
- CustomerID: 7, FirstName: Anna, LastName: Kramer, Email: steven23@example.org, Phone: +1-202-719-6886x844, BillingAddress: "295 Mcgee Fort, Manningberg, PR 93309", ShippingAddress: "295 Mcgee Fort, Manningberg, PR 93309", CustomerSince: 2022-03-06, IsActive: 1
- CustomerID: 8, FirstName: Michael, LastName: Sullivan, Email: bbailey@example.com, Phone: 988.368.5033, BillingAddress: "772 Bruce Motorway Suite 583, Powellbury, MH 42611", ShippingAddress: "772 Bruce Motorway Suite 583, Powellbury, MH 42611", CustomerSince: 2019-03-23, IsActive: 1
- CustomerID: 9, FirstName: Kevin, LastName: Moody, Email: yoderjennifer@example.org, Phone: 3425196543, BillingAddress: "371 Lee Lake, New Michaelport, CT 99382", ShippingAddress: "371 Lee Lake, New Michaelport, CT 99382", CustomerSince: 2023-12-03, IsActive: 1
- CustomerID: 10, FirstName: Jeremy, LastName: Mejia, Email: spencersteven@example.org, Phone: 449.324.7097, BillingAddress: "90137 Harris Garden, Matthewville, IA 39321", ShippingAddress: "90137 Harris Garden, Matthewville, IA 39321", CustomerSince: 2019-05-20, IsActive: 1
These sample records provide a clear representation of the data structure for customers within the database schema. Use these details to assist in generating queries that involve customer information, such as filtering active customers, summarizing sales by customer, or identifying long-term customers.
Sample records for the InventoryLog table:
- LogID: 1, ProductID: 301, ChangeDate: 2023-09-08, QuantityChange: 84, Notes: Inventory increased
- LogID: 2, ProductID: 524, ChangeDate: 2023-08-09, QuantityChange: -84, Notes: Inventory decreased
- LogID: 3, ProductID: 183, ChangeDate: 2023-04-17, QuantityChange: -51, Notes: Inventory decreased
- LogID: 4, ProductID: 390, ChangeDate: 2023-02-27, QuantityChange: 80, Notes: Inventory increased
- LogID: 5, ProductID: 737, ChangeDate: 2023-11-15, QuantityChange: 24, Notes: Inventory increased
- LogID: 6, ProductID: 848, ChangeDate: 2023-11-22, QuantityChange: 69, Notes: Inventory increased
- LogID: 7, ProductID: 534, ChangeDate: 2023-06-06, QuantityChange: -61, Notes: Inventory decreased
- LogID: 8, ProductID: 662, ChangeDate: 2024-01-16, QuantityChange: 70, Notes: Inventory increased
- LogID: 9, ProductID: 969, ChangeDate: 2024-01-07, QuantityChange: -25, Notes: Inventory decreased
- LogID: 10, ProductID: 640, ChangeDate: 2023-08-08, QuantityChange: -13, Notes: Inventory decreased
These sample records provide insights into the inventory adjustments for different products within the database schema. Utilize these details to assist in generating queries that track inventory changes, analyze stock levels, or evaluate inventory management efficiency.
Sample records for the LineItem table:
- LineItemID: 1, SalesOrderID: 280, ProductID: 290, Quantity: 3, UnitPrice: 84.59, Discount: NULL, TotalPrice: 253.77
- LineItemID: 2, SalesOrderID: 94, ProductID: 249, Quantity: 6, UnitPrice: 88.7, Discount: NULL, TotalPrice: 532.2
- LineItemID: 3, SalesOrderID: 965, ProductID: 247, Quantity: 1, UnitPrice: 43.44, Discount: NULL, TotalPrice: 43.44
- LineItemID: 4, SalesOrderID: 173, ProductID: 16, Quantity: 10, UnitPrice: 26.3, Discount: NULL, TotalPrice: 263
- LineItemID: 5, SalesOrderID: 596, ProductID: 191, Quantity: 9, UnitPrice: 59.44, Discount: NULL, TotalPrice: 534.96
- LineItemID: 6, SalesOrderID: 596, ProductID: 308, Quantity: 8, UnitPrice: 33.11, Discount: NULL, TotalPrice: 264.88
- LineItemID: 7, SalesOrderID: 960, ProductID: 758, Quantity: 5, UnitPrice: 64.47, Discount: NULL, TotalPrice: 322.35
- LineItemID: 8, SalesOrderID: 148, ProductID: 288, Quantity: 5, UnitPrice: 65.21, Discount: NULL, TotalPrice: 326.05
- LineItemID: 9, SalesOrderID: 974, ProductID: 706, Quantity: 3, UnitPrice: 59.86, Discount: NULL, TotalPrice: 179.58
- LineItemID: 10, SalesOrderID: 298, ProductID: 998, Quantity: 2, UnitPrice: 75.79, Discount: NULL, TotalPrice: 151.58
These sample records illustrate various line items associated with sales orders in the database. These details help in constructing queries to analyze sales performance, product popularity, pricing strategies, and overall sales revenue.
Sample records for the SalesOrder table:
- SalesOrderID: 1, CustomerID: 12, OrderDate: 2022-11-05, RequiredDate: 2022-12-02, ShippedDate: 2022-11-25, Status: Pending, Comments: NULL, PaymentMethod: NULL, IsPaid: 0
- SalesOrderID: 2, CustomerID: 56, OrderDate: 2022-02-22, RequiredDate: 2022-03-08, ShippedDate: 2022-03-17, Status: Completed, Comments: NULL, PaymentMethod: NULL, IsPaid: 1
- SalesOrderID: 3, CustomerID: 63, OrderDate: 2023-03-20, RequiredDate: 2023-03-27, ShippedDate: NULL, Status: Shipped, Comments: NULL, PaymentMethod: NULL, IsPaid: 0
- SalesOrderID: 4, CustomerID: 21, OrderDate: 2023-04-29, RequiredDate: 2023-05-26, ShippedDate: 2023-05-14, Status: Pending, Comments: NULL, PaymentMethod: NULL, IsPaid: 1
- SalesOrderID: 5, CustomerID: 16, OrderDate: 2022-11-05, RequiredDate: 2022-11-30, ShippedDate: NULL, Status: Shipped, Comments: NULL, PaymentMethod: NULL, IsPaid: 1
- SalesOrderID: 6, CustomerID: 46, OrderDate: 2023-10-06, RequiredDate: 2023-10-27, ShippedDate: NULL, Status: Shipped, Comments: NULL, PaymentMethod: NULL, IsPaid: 1
- SalesOrderID: 7, CustomerID: 47, OrderDate: 2023-02-08, RequiredDate: 2023-02-25, ShippedDate: 2023-03-03, Status: Shipped, Comments: NULL, PaymentMethod: NULL, IsPaid: 1
- SalesOrderID: 8, CustomerID: 70, OrderDate: 2022-07-29, RequiredDate: 2022-08-18, ShippedDate: 2022-08-10, Status: Pending, Comments: NULL, PaymentMethod: NULL, IsPaid: 0
- SalesOrderID: 9, CustomerID: 14, OrderDate: 2022-03-29, RequiredDate: 2022-04-15, ShippedDate: 2022-04-17, Status: Completed, Comments: NULL, PaymentMethod: NULL, IsPaid: 0
- SalesOrderID: 10, CustomerID: 31, OrderDate: 2024-01-12, RequiredDate: 2024-01-31, ShippedDate: 2024-02-07, Status: Pending, Comments: NULL, PaymentMethod: NULL, IsPaid: 0
These sample records provide insights into sales order management within the database, including order status, shipping details, payment methods, and customer IDs. This information is crucial for analyzing sales processes, order fulfillment rates, customer engagement, and payment transactions.
"""
После создания оператора SQL система может оптимизировать запрос SQL для повышения эффективности запроса. Например, добавьте индексы, оптимизируйте планы запросов и т. д.
year
иsales_amount
字段上检查是否有适当из索引。Оптимизированный оператор SQL отправляется в базу данных для выполнения, и база данных возвращает набор результатов. Система преобразует результаты запроса в удобные для пользователя формы для отображения, такие как таблицы, диаграммы или другие визуальные формы.
product_name | sales_amount |
---|---|
Продукт А | 15000000 |
Продукт Б | 12000000 |
Продукт С | 11000000 |
Два показателя для оценки модели: уровень точного совпадения и уровень точности исполнения.
Появление NL2SQL полностью изменило способ взаимодействия людей с данными. Он работает, скрывая сложные SQL-запросы под вводом. на естественном За языком, порог сбора данных значительно снижен, что позволяет бизнес-персоналу напрямую получать необходимую информацию, не полагаясь на техническую подготовку. Благодаря постоянному развитию технологий обработки естественного языка сценарии применения NL2SQL будут становиться все более и более обширными, охватывая различные области, от корпоративной отчетности до интеллектуального обслуживания клиентов. В будущем, благодаря расширенным возможностям обобщения модели и оптимизации производительности в реальном времени, мы можем ожидать, что технология NL2SQL играет более важную роль в принятии решений на основе данных, делая возможным «бесплатный обмен данными с данными».