Data

3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog

SQL หรือ Structured Query Language (จะอ่านออกเสียงว่า S-Q-L หรือ Sequel ก็ได้) เป็นภาษาคอมพิวเตอร์ที่ใช้ในการทำงานกับฐานข้อมูล ตั้งแต่การจัดการข้อมูล (insert, delete, update, etc.) ไปจนถึงการดึงข้อมูล (query) ออกมาใช้งาน พอได้ยินว่าเป็น “ภาษา” คอมพิวเตอร์ ตอนนี้หลายๆ คนคงกำลังจะกดปิดหน้าต่างนี้ 🤚แต่เดี๋ยวก่อน! ในบทความนี้ ผมจะมาเล่าให้ฟังว่าทำไมภาษา SQL ถึงเป็นหนึ่งในทักษะที่ “ทุกคน” ควรจะมีในยุคนี้

แต่ก่อนอื่น ลองมาดูตัวอย่าง SQL Query กันสักหน่อยเพื่อให้ทุกคนเห็นภาพกันมากขึ้น สมมติเรามีตารางข้อมูลโพสต์จาก FB เพจของ Skooldio จัดเก็บอยู่ในฐานข้อมูล หน้าตาแบบนี้

3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog
Table: skooldio_page

ถ้าเราอยากดึงข้อมูลโพสต์ที่เป็นรูปภาพที่ได้ reactions เกิน 100 ก็สามารถทำได้ง่ายๆ ด้วยคำสั่ง

SELECT type, reactions, message, link
FROM skooldio_page
WHERE type = 'photo'
AND reactions > 100

ซึ่งอ่านแล้วก็จะพอเข้าใจได้ทันทีว่าคำสั่งนี้ทำอะไรบ้าง เหมือนประโยคภาษาอังกฤษทั่วๆ ไป ง่ายไม๊ล่ะ! 😉 ถึงตอนนี้หลายคนคงคิดในใจว่าจริงๆ แล้ว เราสามารถทำแบบเดียวกันด้วย MS Excel ได้ง่ายกว่าตั้งเยอะ แค่แปลงตารางข้อมูลให้เป็น Excel Tableแล้วก็กดเลือก Filter ตาม Column … งั้นเราลองมาดูกันอีกหนึ่งตัวอย่าง

คราวนี้เราอยากดูว่าโพสต์แต่ละประเภท (photo, link, video, etc.) ได้รับ reactions โดยเฉลี่ยเท่าไหร่ ก็สามารถทำได้ด้วยคำสั่ง

SELECT 
  post_type,   
  AVG(reactions)
FROM skooldio_page 
GROUP BY post_type

ซึ่งก็ยังคงเป็นประโยคภาษาอังกฤษเข้าใจง่ายๆ เหมือนเดิม แต่คราวนี้ถ้าเราอยากทำแบบเดียวกันใน MS Excel ก็จะเริ่มซับซ้อนขึ้นมาอีกนิด ต้องมีการทำ Pivot Tableอะไรว่าไป


พอจะเห็นภาพมากขึ้นแล้วว่า SQL คืออะไร แต่ว่ามันดีขนาดนั้นจริงๆ หรอ? ทำไมถึงเป็นทักษะที่จำเป็นในยุคนี้? ลองมาดู 3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL กัน

1. จำเป็น จำเป็น จำเป็น

 

เนื่องจาก SQL เป็นภาษาหลักที่ใช้ในการทำงานกับฐานข้อมูล ในยุคที่ทุกๆ องค์กรมีข้อมูลมากมายมหาศาล ทักษะการเขียน SQL จึงเป็นที่ต้องการมากๆ ในตอนนี้ หลายองค์กรอยากจะปรับตัวเองให้เป็น Data-Driven Organization แต่ทั้งองค์กรกลับมีคนแค่กลุ่มเล็กๆ ในทีม IT หรือ Analyst ที่เขียน SQL เป็นและสามารถเข้าไปดึงข้อมูลมาเพื่อตอบคำถามที่สำคัญทางธุรกิจได้

นอกจากตัวอย่างการใช้งาน SQL ง่ายๆ ที่ได้ยกตัวอย่างไปข้างต้นแล้วนั้น เรายังสามารถใช้ SQL กับการทำงานข้อมูลที่ซับซ้อนมากๆ ได้ เช่น แปลงข้อมูล (data transformation), ทำความสะอาดข้อมูล (data cleansing), ผูกสูตรคำนวณง่ายๆ (arithmetic operations) ไปจนถึงการคำนวณที่ซับซ้อนอย่าง Moving Average ก็สามารถทำได้เช่นกัน

จากผลสำรวจบุคลากรที่ทำงานด้าน Machine Learning และ Data Science ของ Kaggle พบว่าภาษา SQL มาเป็นอันดับที่ 2 ของภาษาที่ถูกใช้งานเป็นประจำ

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog
Kaggle’s Machine Learning and Data Science Survey 2018 (23,859 responses)

ในส่วนของ developers จากการสำรวจของ StackOverflow ภาษา SQL ก็เป็นภาษาที่ได้รับความนิยมมากเป็นอันดับ 3 เลยทีเดียว

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog
https://insights.stackoverflow.com/survey/2019#most-popular-technologies (87,354 responses)

บุคลากรในกลุ่ม Non-technical หรือ Business Users ไม่ว่าจะเป็น marketers, sales, หรือ product managers อาจจะคุ้นเคยทำงานกับข้อมูลด้วย MS Excel อยู่แล้ว แต่พอปริมาณข้อมูลเริ่มเพิ่มมากขึ้น MS Excel ก็จะเริ่มหน่วง และไม่ใช่เครื่องมือที่เหมาะสมอีกต่อไป ประโยชน์ที่สำคัญมากอีกอย่างหนึ่งของการเขียนคำสั่ง SQL แทนการคลิกๆ ใน MS Excel ก็คือการทำซ้ำ (repeatable) และนำมาใช้ใหม่ (reusable) เช่น หากเราต้องการดึงข้อมูลเพื่อมาสรุปทำรายงานแบบเดิมซ้ำๆ ทุกเดือน ก็เพียงแค่นำคำสั่ง SQL ที่เคยเขียนไว้มารันซ้ำบนข้อมูลชุดใหม่

ดังนั้นทักษะการเขียน SQL จึงจำเป็นสำหรับทุกคนที่อยากเอาข้อมูลมาตอบคำถามทางธุรกิจและตัดสินใจได้อย่างมีประสิทธิภาพ และถ้าคุณเป็นคนกลุ่มน้อยในสายงานของคุณที่สามารถเขียน SQL ได้ เตรียมเป็น #ความหวังของหมู่บ้าน ให้ทีมได้เล้ยยย!!

3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog

2. เรียนทีเดียวใช้ได้ยาวๆ

ในขณะที่ภาษาคอมพิวเตอร์หลายๆ อันล้มหายตายจากกันไป ภาษา SQL ที่ถูกสร้างขึ้นในปี 1974 ยังคงได้รับความนิยมอย่างต่อเนื่องมาจนปัจจุบัน (45 ปีแล้ว!) และยังไม่มีแววที่จะหายไปในเร็วๆ นี้ ที่สำคัญไปกว่านั้น คือ SQL เป็นมาตรฐานของ American National Standards Institute (ANSI) นั่นคือ ระบบฐานข้อมูลที่เป็นไปตามมาตรฐาน SQL ที่กำหนดไว้ ไม่ว่าจะของฟรี (เช่น MySQL) เหลือเสียตังค์ (เช่น MS SQL Server, Oracle Database) ก็สามารถใช้คำสั่ง SQL พื้นฐานเดียวกันได้เลย

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog

จนในยุคของ Big Data ถ้าใครเขียน SQL เป็น ก็แทบจะพร้อมใช้งาน HiveQL หรือ Google BigQuery ในการจัดการกับข้อมูลขนาดใหญ่ใน Data Lake ได้เลย

หรือแม้กระทั่ง Google Sheets ตอนนี้ ก็เพิ่มความสามารถให้เราสามารถเขียน SQL Query ได้แล้วเช่นกัน!! 😲

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog
ใน Google Sheets มีฟังก์ชัน SQL Query ให้เรียกใช้ ไม่ต้องง้อ Pivot Table อีกต่อไป
 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog

3. ประตูสู่สายงานข้อมูล

ทักษะการเขียน SQL เป็นจุดเริ่มต้นที่ดีในการก้าวเข้าสู่สายงานด้านข้อมูล การเขียน SQL Query ช่วยฝึกให้เราคิดในรูปแบบแถวและคอลัมน์ของตารางได้เป็นอย่างดี และสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น หากต้องการต่อยอดไปศึกษาภาษาอื่นๆ อย่าง R หรือ Python ก็จะสามารถทำได้ง่าย

ตัวอย่างเช่น คำสั่งที่ใช้ในการสรุปว่าโพสต์แต่ละประเภทได้รับ reactions โดยเฉลี่ยเท่าไหร่

  • เขียนด้วยภาษา R (+ dplyr)
skooldio_page %>% 
  group_by(post_type) %>% 
  summarise(avg = mean(reactions))
  • เขียนด้วยภาษา Python (+ pandas)
skooldio_page.groupby(['post_type']).agg({'reactions' : np.mean})

จะเห็นได้ว่าก็จะมีเค้าโครงของการทำ GROUP BY และ aggregate/summarise ข้อมูลด้วยฟังก์ชันหาค่าเฉลี่ย เหมือนใน SQL Query อยู่

เนื่องจากคนที่ทำงานด้านข้อมูลส่วนใหญ่ สามารถเขียน SQL ได้คล่องแคล่วอยู่แล้ว จึงเริ่มมีการเพิ่มขีดความสามารถใหม่ๆ ให้กับระบบฐานข้อมูล ที่สามารถเรียกใช้ได้ผ่านภาษา SQL เช่น การประมวลผลข้อมูลทางภูมิศาสตร์ (Geographic data) เช่น ที่ตั้งร้านค้า, เขตการปกครอง, ตำแหน่งจุดสนใจต่างๆ หรือแม้กระทั่งการสร้างโมเดล Machine Learning

เชื่อหรือยังว่า การเขียน SQL เป็นพื้นฐานที่ดีในการเริ่มต้นทำงานกับข้อมูล 😉

 
3 เหตุผลที่ทุกคนควรเริ่มหัดเขียน SQL | Skooldio Blog
การสร้างโมเดล Machine Learning ด้วย SQL ผ่าน Google BigQuery

อยากเริ่มเรียนแล้ว?

อย่างที่กล่าวไปแล้วข้างต้นไปแล้ว ว่า SQL เป็นภาษาเก่าแก่ และเป็นภาษาที่จำเป็นมากๆ สำหรับทุกคน บทเรียน SQL ขั้นพื้นฐานฟรีๆ จึงมีอยู่เยอะมากบน Internet เช่น

  • DataCamp บทเรียนเป็นภาษาอังกฤษ พร้อมกับ Live Coding ให้ฝึกเขียนระหว่างเรียนไปด้วย (เนื่องด้วยช่วงนี้กำลังมีการรณรงค์ต่อต้าน DataCamp จากพฤติกรรมที่ไม่เหมาะสมของผู้บริหาร จึงขออนุญาตเอาลิงก์ออก ใครที่สนใจลองไป Google กันเองดู)
  • ใครที่อยากดูบทเรียนเป็นภาษาไทย ก็มีของเพจ Data Rockie ที่เข้าไปเรียนกันได้ฟรีๆ ช่วยให้คุณเริ่มต้นเขียนภาษา SQL แบบง่ายๆ ทาง Intro to SQL for Data Analysis

ส่วนใครที่อยากจะลงลึกในรายละเอียด ฝึกฝนเพื่อให้ใช้งานได้คล่อง และเห็นภาพการนำไปใช้ในการตอบคำถามทางธุรกิจหรือวิเคราะห์ข้อมูลมากขึ้น ลองดูหลักสูตรออนไลน์ของ Codecademy ซึ่งมี Live Coding เหมือน DataCamp และเคสให้ฝึกทำค่อนข้างเยอะ ทาง Learn SQL from Scratch | Codecademy

 

หรือ…มาเรียนด้วยกันที่ Skooldio! #ฝากร้าน 😂😂

  • SQL for Data Analytics หลักสูตรออนไลน์ที่จะสอนคำสั่งพื้นฐานที่จำเป็น โดยเน้นให้ฝึกคิดและเขียน SQL Query เพื่อตอบคำถามที่น่าสนใจจากข้อมูล เหมาะสำหรับบุคคลทั่วไป ไม่จำเป็นต้องมีพื้นฐานการเขียนโปรแกรมอะไรมาก่อน

    SQL for Data Analytics course card

 

  • สำหรับคนที่มีพื้นฐานที่ดีแล้ว SQL Advanced เราจะมาดูการใช้ Subqueries, การทำงานกับข้อมูลแบบ ARRAY และ STRUCT, การใช้งาน Window functions รวมไปถึงฟีเจอร์ใหม่ๆ ของ Google BigQuery อย่าง BigQuery ML และ BigQuery GIS

คอร์สออนไลน์ Advanved SQL for Data Analytics with BigQuery | Skooldio Blog

 
Ta Virot Chiraphadhanakul
Google Developer Expert in Machine Learning. A data nerd. A design geek. A changemaker.  —  Chula Intania 87, MIT Alum, Ex-Facebooker

    You may also like

    Business

    4 ขั้นตอนการทำ Marketing Analytics ผ่าน Google Analytics 4

    Marketing Analytics ถือเป็นหนึ่งหัวใจสำคัญของการทำ Performance Marketing และหากพูดถึงคำว่า Analytics นั้น หลายคนมักจะโฟกัสที่การวิเคราะห์ข้อมูล แต่ที่จริงขั้นตอนการตั้งคำถามและเก็บข้อมูลก็เป็นส่วนที่สำคัญไม่แพ้กัน เพราะถ้าตั้งคำถามและเก็บข้อมูลได้ไม่ถูกจุดแล้ว อาจทำให้เกิดการวิเคราะห์ข้อมูลและการตัดสินใจที่ผิดพลาดได้ในที่สุด  สำหรับผู้ที่สนใจอยากเริ่มทำ Marketing Analytics ...
    Web Scraping คืออะไร?
    Data

    Web Scraping คืออะไร? ไม่เก่งเขียน Code สามารถทำได้ไหม?

    ในปัจจุบันที่โลกก้าวสู่ยุค Digital และมีความเติบโตของจำนวนผู้ใช้อินเตอร์เน็ตจำนวนมาก ไม่ว่าจะเป็น การค้นหาข้อมูลข่าวสาร, ซื้อขายสินค้า หรือเป็นแหล่งชุมชน Community และอื่นๆ อีกมากมายอยู่บนเว็บไซต์ กลายเป็นแหล่งข้อมูล (Data Source) ชั้นดี สำหรับธุรกิจต่างๆ ...

    More in:Data

    แนะนำเครื่องมือดึงข้อมูลฟรี Webscraper.io Data

    แนะนำเครื่องมือดึงข้อมูลจากเว็บไซต์ฟรี !! WebScraper.io

    ปัจจุบัน ‘เว็บไซต์’ ถือว่าเป็นแหล่งข้อมูลชั้นดี (Data source) และมีบทบาทความสำคัญในการขับเคลื่อนธุรกิจทุกระดับไม่ว่าจะเป็นธุรกิจขนาดเล็กหรือขนาดใหญ่ แต่การดึงข้อมูลบนเว็บไซต์ (Web Scraping) อาจจะฟังดูเป็นเรื่องไกลตัวสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ที่สามารถเขียนโค้ดโปรแกรมดึงข้อมูลออกมาใช้งานได้ 😎 จะดีกว่ามั้ย!? ถ้าคุณสามารถใช้เครื่องมือดึงข้อมูลที่สนใจบนเว็บไซต์ได้ด้วยตัวเอง ถึงแม้ว่าคุณอาจจะเขียนโปรแกรมไม่เก่งก็สามารถทำได้ ฟรี ...
    Data

    Apache Airflow คืออะไร แล้วทำไมองค์กรชั้นนำส่วนใหญ่ถึงเลือกใช้

    Apache Airflow คือ 1 ใน Workflow Management ที่ได้รับความนิยม และองค์กรชั้นนำระดับโลกหลายๆ องค์กรเลือกใช้ โดยเฉพาะอย่างยิ่งในการสร้าง Data Pipelines เพื่อจัดการกับข้อมูลจำนวนมหาศาล ส่วนหนึ่งเพราะองค์กรต่าง ...
    Performance Marketing คืออะไร Business

    Performance Marketing คืออะไร? รู้จักวิธีการทำการตลาดแบบวัดผลได้

    ถ้าให้คุณจ่ายเงินเกินสิ่งที่ได้รับ หรือจ่ายไปโดยไม่รู้ด้วยซ้ำว่าได้ผลหรือเปล่า คุณจะยอมไหม? แน่นอนว่าคุณคงไม่แฮปปี้ แต่นี่แหละคือ ‘วิธีทำการตลาด’ ที่หลาย ๆ บริษัทกำลังทำอยู่ แล้วจะดีแค่ไหน หากเราสามารถเลือกใช้เงินเฉพาะกับผลลัพธ์ที่เราได้รับเท่านั้น ซึ่งทั้งหมดนี้คืองาน Performance Marketing การทำธุรกิจเปลี่ยนไปอย่างรวดเร็วตั้งแต่อินเตอร์เน็ตเข้ามามีบทบาทกับพฤติกรรมของมนุษย์ ...
    data-driven-with-moneyball-theory Data

    MoneyBall Theory ถอดบทเรียนชัยชนะแห่งศตวรรษด้วย Data

    สำหรับใครหลายๆ คนมักจะคิดว่าการใช้ Data นั้นจะถูกจำกัดไว้อยู่เพียงแค่กับการทำธุรกิจ หรือการทำวิจัยเท่านั้น แต่ความเป็นจริงแล้วข้อมูลสามารถใช้ในการวิเคราะห์ได้หลากหลายสิ่งมากๆ และอยู่ได้ในแทบทุกวงการ แม้กระทั่งกับวงการกีฬาเองที่การวิเคราะห์ข้อมูล และใช้ Data ก็สามารถทำให้ทีมได้ชัยชนะได้ไม่ยาก ย้อนกลับไปในช่วงก่อนปี 2002 วงการเบสบอลในสหรัฐอเมริกาจะมีแมวมองไปดูตามโรงเรียนมัธยมต่าง ๆ ...

    Comments are closed.