ภาษาการค้นหาของ Google เป็นวิธีที่รวดเร็วและมีประสิทธิภาพในการวิเคราะห์ข้อมูลใน Google ชีตของคุณที่ยืมรูปแบบต่างๆ มากมายที่ใช้ใน SQL บทช่วยสอนนี้จะทำให้คุณคุ้นเคยกับพื้นฐานของวิธีใช้แบบสอบถามเพื่อตอบคำถามเฉพาะจากชุดข้อมูลตัวอย่าง
ก่อนอื่นเราต้องการข้อมูลตัวอย่างเพื่อเล่นด้วย เราจะใช้ฟังก์ชันนำเข้าเพื่อดึงตารางข้อมูลประชากรโลกจากวิกิพีเดีย:
=IMPORTHTML("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)", "table", 3)
ฟังก์ชันนี้จะค้นหาตารางที่ 3 ที่ URL ด้านบน ดึงข้อมูลจากแต่ละเซลล์ และนำเข้าลงใน Google ชีต เย็น! แต่เรามาทำอีกอย่างหนึ่งเพื่อทำให้การสืบค้นข้อมูลนี้ง่ายขึ้นอีกหน่อย
คลิกเซลล์ใดก็ได้ที่มีข้อมูลเพื่อไฮไลต์ จากนั้นกด CMD + A เพื่อไฮไลต์ทั้งตาราง เมื่อไฮไลต์ทั้งตารางแล้ว ให้คลิก ข้อมูล > ช่วงที่มีชื่อ เพื่อเปิดแผงช่วงที่มีชื่อ ซึ่งแผงจะลอยออกมาจากด้านขวา
ช่วงที่ตั้งชื่อคือชื่อเล่นที่คุณสามารถตั้งให้กับกลุ่มเซลล์ได้ มาตั้งชื่อ 'ประเทศ' ของเรากันเถอะ
ยอดเยี่ยม! ตอนนี้เราพร้อมที่จะเริ่มสอบถามแล้ว!
ไฮไลต์เซลล์ J1 — เราจะใช้เซลล์นี้เพื่อพิมพ์ข้อความค้นหาทั้งหมดด้านล่าง:
แสดงสำเนาชุดข้อมูลทั้งหมดของฉัน:
=QUERY(countries, "select *",1)
แสดงเฉพาะคอลัมน์ประเทศและภูมิภาค:
=QUERY(countries, "select B, C",1)
ส่วนคำสั่ง WHERE เป็นวิธีที่ดีในการเริ่มถามคำถามที่เฉพาะเจาะจงมากขึ้นจากชุดข้อมูลของคุณ
แสดงประเทศที่มีประชากรมากกว่าหรือเท่ากับ 100 ล้านคน:
=QUERY(countries, "SELECT B, E where E >= 100000000")
แสดงประเทศที่มี 'es' ในชื่อ:
=QUERY(countries, "SELECT B where B contains 'es'")
แสดงประเทศ ที่ไม่มี 'es' ในชื่อ:
=QUERY(countries, "SELECT B where not B contains 'es'")
แสดงประเทศที่ขึ้นต้นด้วย 'S':
=QUERY(countries, "SELECT B where B STARTS WITH 'S'")
แสดงประเทศที่ลงท้ายด้วย 's' (อย่าลืมคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
=QUERY(countries, "SELECT B where B ENDS WITH 's'")
แสดงประเทศที่มี 'ยูไนเต็ด':
=QUERY(countries, "SELECT B where B CONTAINS 'United'")
มาเพิ่มความเฉพาะเจาะจงยิ่งขึ้นในส่วนคำสั่ง AND กันดีกว่า!
แสดงประเทศทั้งหมดในอเมริกา ที่มี ประชากรน้อยกว่า 100,000 คน:
=QUERY(countries, "select B, F WHERE C = 'Americas' AND F <= 100000", 1)
และอนุประโยคสามารถรวมเข้าด้วยกันได้ไม่จำกัด
แบบสอบถามนี้ส่งคืนทุกประเทศในอเมริกาที่มีประชากรน้อยกว่า 100,000 คนและมากกว่า 10,000 คน:
=QUERY(countries, "select B, F WHERE C = 'Americas' AND F <= 100000 AND F >= 10000", 1)
บางทีสิ่งแรกๆ ที่คุณต้องการทำเมื่อสำรวจชุดข้อมูลคือการดูการรวมกลุ่มง่ายๆ ได้แก่ ค่าสูงสุด ค่าต่ำสุด และค่าเฉลี่ยในบางฟิลด์ มาดูจำนวนประชากรสูงสุด ต่ำสุด และเฉลี่ยในปี 2017 ของประเทศต่างๆ ในชุดข้อมูลของเรากัน:
=QUERY(countries, "select max(F), min(F), avg(F)", 1)
เจ๋งเลย
ด้วยการปรับเปลี่ยนเล็กน้อย เราจะสามารถดูจำนวนประชากรสูงสุด ต่ำสุด และเฉลี่ยของแต่ละทวีปได้:
=QUERY(countries, "select C, max(F), min (F), avg(F) GROUP by C", 1)
'นับ' และ 'จัดกลุ่มตาม' ร่วมกันเป็นอีกวิธีที่ดีในการสำรวจชุดข้อมูล เมื่อรวมกันแล้วจะช่วยให้คุณสามารถนับรายการในหนึ่งคอลัมน์ขึ้นไปและดูและมุมมองรวมได้
ลองใช้สองประโยคนี้เพื่อดูว่ามีกี่ประเทศในรายการของเราในแต่ละภูมิภาค:
=QUERY(countries, "SELECT C, count(B) GROUP by C", 1)
มาเพิ่มในส่วนคำสั่ง 'ORDER BY' เพื่อแสดงรายการภูมิภาคทั้งหมด โดยเรียงลำดับจากน้อยไปมาก:
=QUERY(countries, "SELECT C, count(B) GROUP by C ORDER by C asc", 1)
ส่วนคำสั่ง 'PIVOT' จะรวมค่าต่างๆ ไว้ในแถวเดียว
ตัวอย่างเช่น หากเราต้องการแสดงผลรวมของประชากรทั้งหมดในปี 2017 ตามภูมิภาค เราสามารถใช้:
=QUERY(countries, "SELECT sum(F) pivot C", 1)
คุณยังสามารถวิเคราะห์ข้อมูลของคุณโดยดำเนินการทางคณิตศาสตร์โดยเป็นส่วนหนึ่งของข้อความค้นหาของคุณ
ตอนนี้เรามาแสดงรายชื่อประเทศที่มีประชากรในปี 2017 เป็นเปอร์เซ็นต์ของประชากรโลกทั้งหมด:
=QUERY(countries, "select B, C, (F / 7550262101) * 100", 1)
ข้อมูลเปอร์เซ็นต์ของเราดูดี แต่ส่วนหัวของคอลัมน์สามารถอ่านได้ดีมาก เราสามารถคลิกเข้าไปในเซลล์และเปลี่ยนชื่อได้ แต่เรายังสามารถตั้งชื่อให้เป็นส่วนหนึ่งของแบบสอบถามได้โดยการเพิ่มพารามิเตอร์ 'label':
=QUERY(countries, "select B, C, (F / 7550262101) * 100 Label (F / 7550262101) * 100 'Percentage'", 1)
เอกสารภาษา Google Query: https://developers.google.com/chart/interactive/docs/query language
ภาพรวมฟังก์ชันการค้นหาของ Google ชีตโดยการเข้ารหัสมีไว้สำหรับผู้แพ้: https://codingisforlosers.com/google-sheets-query-function/#why