ใช้ AI ช่วยเขียน SQL สำหรับนักวิเคราะห์ข้อมูล
วิธีให้ AI เขียน SQL ได้ตรงกับ schema จริง ตรวจหาข้อผิดพลาดที่พบบ่อย เช่น join ซ้ำแถวและ timezone และใช้อย่างปลอดภัยกับข้อมูลบริษัท
คุณได้รับโจทย์ด่วนว่า "ขอดูอัตราลูกค้ากลับมาซื้อซ้ำแยกตามเดือนที่ซื้อครั้งแรก ภายในบ่ายนี้" คุณเปิด AI แล้วพิมพ์โจทย์ตรง ๆ ได้ SQL ยาว 30 บรรทัดที่รันผ่าน แต่ตัวเลขสูงเกินจริงเกือบเท่าตัว ปัญหาคือ AI ไม่รู้จักโครงสร้างข้อมูลของคุณ มันเดาให้ดูสมเหตุสมผล บทความนี้คือวิธีทำงานกับ AI ให้ได้ SQL ที่ทั้งรันได้และถูกต้อง
ใช้ AI เขียน SQL คืออะไร
คือการให้ Large Language Model แปลงโจทย์ธุรกิจเป็นคำสั่ง SQL ช่วยอธิบาย query ที่คนอื่นเขียนไว้ และช่วยแก้ error ปัจจุบันเครื่องมือหลายตัวมีความสามารถนี้ในตัว เช่น เอกสาร Google Cloud ระบุว่า Gemini ใน BigQuery สร้าง SQL จาก comment ภาษาธรรมดา อธิบาย query ด้วยคำสั่ง "Explain this query" และช่วยแก้ error ได้ โดยรองรับ prompt ภาษาอังกฤษเท่านั้น
กลไก: ทำไม AI เขียน SQL ผิด
AI สร้าง SQL จากรูปแบบภาษาที่เคยเห็น ถ้าคุณไม่ให้ schema มันจะเดาชื่อตาราง ชื่อคอลัมน์ และความสัมพันธ์ ผลคือ query ที่ดูถูกแต่ตรรกะผิด ทางแก้คือให้ context ครบ
Context ที่ควรใส่ทุกครั้ง
- Dialect: BigQuery, PostgreSQL, MySQL หรือ SQL Server เพราะฟังก์ชันวันที่ต่างกัน
- Schema: ชื่อตาราง คอลัมน์ ชนิดข้อมูล และ primary key
- ความสัมพันธ์: ตารางคำสั่งซื้อหนึ่งแถวต่อหนึ่งบิล หรือหนึ่งแถวต่อหนึ่งสินค้าในบิล
- นิยามธุรกิจ: "ลูกค้าซื้อซ้ำ" หมายถึงซื้อครั้งที่สองภายใน 90 วัน และไม่นับบิลที่ยกเลิก
ข้อผิดพลาดที่ต้องตรวจทุกครั้ง
Join แล้วแถวเพิ่ม (fan-out)
ถ้า join ตารางบิลกับตารางรายการสินค้า แล้วรวมยอดบิล ยอดจะถูกนับซ้ำตามจำนวนสินค้า วิธีตรวจคือนับจำนวนแถวก่อนและหลัง join เทียบกัน
Timezone
ระบบจำนวนมากเก็บเวลาเป็น UTC ถ้าไม่แปลงเป็นเวลาไทย (Asia/Bangkok) บิลช่วงเที่ยงคืนถึงเจ็ดโมงเช้าจะตกไปอยู่วันก่อนหน้า ตัวเลขรายวันจะเพี้ยน
NULL และขอบเขตวันที่
การกรองด้วย "ไม่เท่ากับ" จะตัดแถวที่เป็น NULL ทิ้งไปด้วย และช่วงวันที่ที่ใช้ "น้อยกว่าหรือเท่ากับ" วันสุดท้าย อาจตกหล่นข้อมูลหลังเที่ยงคืน
ตัวอย่าง: วิเคราะห์ลูกค้าซื้อซ้ำของร้านออนไลน์
นักวิเคราะห์ของแบรนด์อาหารเสริมที่ขายผ่านเว็บไซต์ของตัวเองให้ schema ตารางคำสั่งซื้อและตารางลูกค้า พร้อมนิยามซื้อซ้ำ แล้วขอให้ AI เขียนเป็นขั้น ขั้นแรกใช้ CTE หาวันซื้อครั้งแรกของลูกค้าแต่ละคน ขั้นที่สองหาว่ามีบิลถัดไปภายใน 90 วันหรือไม่ ขั้นสุดท้ายจัดกลุ่มตามเดือนของการซื้อครั้งแรกแล้วคำนวณสัดส่วน เธอสั่งให้ AI อธิบายแต่ละ CTE เป็นภาษาไทย แล้วตรวจกับลูกค้า 3 คนที่รู้ประวัติจริง ก่อนส่งตัวเลข
SQL ที่รันผ่าน ไม่ได้แปลว่า SQL ที่ถูก
ข้อควรระวัง
- อย่าวางข้อมูลส่วนบุคคล หรือรหัสผ่านฐานข้อมูลลงในเครื่องมือ AI ที่องค์กรไม่ได้อนุมัติ ส่งแค่ schema และข้อมูลตัวอย่างที่ปิดบังแล้ว
- ใช้บัญชีแบบอ่านอย่างเดียว เมื่อรัน query ที่ AI เขียน เพื่อกันคำสั่งที่แก้หรือลบข้อมูล
- ระวังค่าใช้จ่าย ในคลังข้อมูลที่คิดเงินตามปริมาณข้อมูลที่สแกน ให้ทดลองกับช่วงวันที่สั้นก่อน
- ผลลัพธ์ไม่คงที่ เอกสาร Google ระบุว่า Gemini อาจเสนอ syntax ต่างกันเมื่อใช้ prompt เดิม และอาจสร้างผลที่ดูถูกแต่ผิด จึงต้องตรวจทุกครั้ง
เริ่มต้นยังไง
- สร้างไฟล์ context กลางที่มี dialect, schema และนิยามธุรกิจ ใช้แปะทุกครั้งที่ถาม AI
- ขอให้ AI เขียนเป็น CTE ทีละขั้น และอธิบายแต่ละขั้น
- ตรวจจำนวนแถว ค่าผลรวม และเคสตัวอย่างที่รู้คำตอบ
- ให้ AI ทำหน้าที่ reviewer ถามว่า "query นี้มีจุดที่อาจนับซ้ำหรือตกหล่นตรงไหน"
- เก็บ query ที่ตรวจแล้วเป็นคลังของทีม
ถ้ายังไม่คุ้นกับการคิดแบบ query ลองคอร์ส วิเคราะห์ข้อมูลธุรกิจด้วยสูตร Query พร้อม Case Study หรือ ก้าวแรกสู่นักวิเคราะห์ข้อมูลยุค AI บน Plants.work Learn และถ้ากำลังเตรียมสัมภาษณ์สาย Data อ่าน สัมภาษณ์งานสาย Data Analyst เตรียมตัวยังไง