個(gè)人博客網(wǎng)站模板素材百度搜索排名機(jī)制
在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,數(shù)據(jù)分析已成為企業(yè)和個(gè)人決策的重要工具。隨著人工智能技術(shù)的快速發(fā)展,AI 驅(qū)動(dòng)的數(shù)據(jù)分析工具正在改變我們處理和分析數(shù)據(jù)的方式。本文將著重介紹如何使用 DeepSeek 進(jìn)行自動(dòng)補(bǔ)全SQL 查詢語(yǔ)句。
我們都知道,SQL 查詢語(yǔ)句是每個(gè)數(shù)據(jù)分析師的必修課,今天就教大家如果使用DeepSeek自動(dòng)補(bǔ)全SQL.
以下是一個(gè)使用 DeepSeek 自動(dòng)補(bǔ)全SQL 的實(shí)際案例。
假設(shè)我們有一個(gè)訂單明細(xì)表(t_order_detail)包含order_id(訂單id)、goods_id(商品id)、dept_id(門店id)、num(銷量)、price(單價(jià))、order_time(銷售時(shí)間),我們需要某時(shí)間段內(nèi)貢獻(xiàn)門店80%銷售額的商品。
?
接下來(lái)我們用PromptIDE-提示詞開(kāi)發(fā)工具幫我們生成一個(gè)數(shù)據(jù)清洗的提示詞。
生成的提示詞如下:
# 角色:
SQL查詢專家## 背景:
用戶需要根據(jù)提供的字段及需求編寫SQL查詢語(yǔ)句。這可能是因?yàn)橛脩粜枰獜臄?shù)據(jù)庫(kù)中提取特定數(shù)據(jù)以支持業(yè)務(wù)決策、生成報(bào)告或進(jìn)行數(shù)據(jù)分析。用戶可能對(duì)SQL語(yǔ)法不熟悉,或者需要優(yōu)化現(xiàn)有的查詢語(yǔ)句。## 注意:
1、用戶希望通過(guò)SQL查詢快速獲取所需數(shù)據(jù),因此查詢語(yǔ)句需要高效且準(zhǔn)確。
2、用戶可能對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)不熟悉,因此需要清晰的字段描述和表關(guān)系說(shuō)明。
3、用戶可能希望查詢語(yǔ)句能夠靈活應(yīng)對(duì)不同的數(shù)據(jù)需求,因此需要具備一定的通用性和可擴(kuò)展性。## 技能:
1、精通SQL語(yǔ)法,能夠編寫復(fù)雜的查詢語(yǔ)句。
2、熟悉數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì),能夠理解表之間的關(guān)系。
3、具備優(yōu)化查詢性能的能力,能夠編寫高效的SQL語(yǔ)句。
4、能夠根據(jù)業(yè)務(wù)需求設(shè)計(jì)查詢邏輯,確保查詢結(jié)果符合業(yè)務(wù)要求。## 目標(biāo):
1、根據(jù)用戶提供的字段及需求,編寫準(zhǔn)確的SQL查詢語(yǔ)句。
2、確保查詢語(yǔ)句能夠高效執(zhí)行,避免性能瓶頸。
3、提供查詢語(yǔ)句的解釋,幫助用戶理解查詢邏輯。
4、根據(jù)用戶反饋,優(yōu)化查詢語(yǔ)句以滿足不斷變化的需求。## 約束:
1、查詢語(yǔ)句必須符合SQL語(yǔ)法規(guī)范。
2、查詢語(yǔ)句必須基于用戶提供的字段和表結(jié)構(gòu)。
3、查詢語(yǔ)句應(yīng)盡量避免復(fù)雜的嵌套查詢,以提高可讀性和執(zhí)行效率。
4、查詢語(yǔ)句應(yīng)考慮到數(shù)據(jù)庫(kù)的性能,避免全表掃描等低效操作。## 輸入:
<字段描述>需要查詢的字段</字段描述>
<表結(jié)構(gòu)描述>已有表結(jié)構(gòu)</表結(jié)構(gòu)描述>
<查詢需求描述>需要查詢的數(shù)據(jù)</查詢需求描述>## 輸出:
1、生成的SQL查詢語(yǔ)句。
2、查詢語(yǔ)句的解釋,包括查詢邏輯和字段說(shuō)明。
3、查詢語(yǔ)句的性能優(yōu)化建議(如有必要)。
4、針對(duì)用戶需求的進(jìn)一步建議或擴(kuò)展查詢示例。## 工作流:
1、分析用戶提供的字段描述,明確需要查詢的字段。
2、分析用戶提供的表結(jié)構(gòu)描述,理解表之間的關(guān)系。
3、根據(jù)用戶提供的查詢需求描述,設(shè)計(jì)查詢邏輯。
4、編寫SQL查詢語(yǔ)句,并確保其符合語(yǔ)法規(guī)范和性能要求。
5、提供查詢語(yǔ)句的解釋和優(yōu)化建議,幫助用戶理解和使用查詢結(jié)果。
接下來(lái)我們把我們的需求補(bǔ)充完整后發(fā)給大模型:
生成的數(shù)據(jù)如下
WITH SalesData AS (SELECT dept_id AS 門店,goods_id AS 商品,SUM(num * price) AS 累計(jì)銷售額,ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY SUM(num * price) DESC) AS 排名FROM t_order_detailWHERE order_time >= '2025-02-01' AND order_time < '2025-03-01'GROUP BY dept_id, goods_id
)
SELECT 門店,商品,累計(jì)銷售額,排名
FROM SalesData
WHERE 累計(jì)銷售額 >= (SELECT PERCENTILE_CONT(0.8) WITHIN GROUP (ORDER BY 累計(jì)銷售額) FROM SalesData AS sd WHERE sd.門店 = SalesData.門店)
ORDER BY 門店 DESC, 商品 DESC;
查詢語(yǔ)句的解釋
-
CTE (Common Table Expression)?
SalesData
:- 門店: 從
t_order_detail
表中提取dept_id
字段,表示門店。 - 商品: 從
t_order_detail
表中提取goods_id
字段,表示商品。 - 累計(jì)銷售額: 計(jì)算每個(gè)門店、每個(gè)商品在2025年2月份的累計(jì)銷售額,即
SUM(num * price)
。 - 排名: 使用
ROW_NUMBER()
窗口函數(shù),按門店分組,按累計(jì)銷售額降序排列,生成每個(gè)門店內(nèi)商品的排名。
- 門店: 從
-
主查詢:
- 篩選條件: 使用子查詢計(jì)算每個(gè)門店的累計(jì)銷售額的80%分位數(shù),并篩選出累計(jì)銷售額大于或等于該分位數(shù)的商品。
- 排序: 按門店ID和商品ID倒序排列結(jié)果。
性能優(yōu)化建議
-
索引優(yōu)化:
- 在
t_order_detail
表的order_time
字段上創(chuàng)建索引,以加速時(shí)間范圍的篩選。 - 在
dept_id
和goods_id
字段上創(chuàng)建復(fù)合索引,以加速分組和排序操作。
- 在
-
分區(qū)表:
- 如果數(shù)據(jù)量非常大,考慮按時(shí)間分區(qū)表(如按月分區(qū)),以減少查詢時(shí)需要掃描的數(shù)據(jù)量。
總之,我們借助PromptIDE+deepseek就可以輕松幫我們完成數(shù)據(jù)清洗了。
如果你也需要數(shù)據(jù)分析相關(guān)的提示詞,請(qǐng)?jiān)L問(wèn):
智能 | 巨人肩膀