คิวรี SQL ที่ซับซ้อนมากขึ้น

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Amany Mahfouz

Instructor

การดึงค่าด้วย DISTINCT

  • ดึงค่าที่ไม่ซ้ำกันของหนึ่งคอลัมน์หรือมากกว่าด้วย SELECT DISTINCT
  • ซินแทกซ์:
    SELECT DISTINCT [column names] FROM [table];
    
  • ลบระเบียนที่ซ้ำกัน:
    SELECT DISTINCT * FROM [table];
    
/* Get unique street addresses and boroughs */
SELECT DISTINCT incident_address, 
       borough
  FROM hpd311calls;
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

ฟังก์ชัน Aggregate

  • สืบค้นสถิติเชิงพรรณนาจากฐานข้อมูลโดยตรง
  • ฟังก์ชัน Aggregate
    • SUM
    • AVG
    • MAX
    • MIN
    • COUNT
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

ฟังก์ชัน Aggregate

  • SUM, AVG, MAX, MIN
    • แต่ละฟังก์ชันรับชื่อคอลัมน์เดียว
      SELECT AVG(tmax) FROM weather;
      
  • COUNT
    • นับจำนวนแถวที่ตรงตามเงื่อนไขคิวรี
      SELECT COUNT(*) FROM [table_name];
      
    • นับจำนวนค่าที่ไม่ซ้ำกันในคอลัมน์
      SELECT COUNT(DISTINCT [column_names]) FROM [table_name];
      
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

GROUP BY

  • ฟังก์ชัน Aggregate จะคำนวณค่าสรุปเดียวโดยค่าเริ่มต้น
  • สรุปข้อมูลตามหมวดหมู่ด้วยคำสั่ง GROUP BY
  • อย่าลืมเลือกคอลัมน์ที่ใช้จัดกลุ่มด้วย!
/* Get counts of plumbing calls by borough */
SELECT borough, 
       COUNT(*) 
  FROM hpd311calls
 WHERE complaint_type = 'PLUMBING'
 GROUP BY borough;
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การนับตามกลุ่ม

# Create database engine
engine = create_engine("sqlite:///data.db")

# Write query to get plumbing call counts by borough query = """SELECT borough, COUNT(*) FROM hpd311calls WHERE complaint_type = 'PLUMBING' GROUP BY borough;"""
# Query databse and create dataframe plumbing_call_counts = pd.read_sql(query, engine)
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

การนับตามกลุ่ม

print(plumbing_call_counts)
         borough  COUNT(*)
0          BRONX      2016
1       BROOKLYN      2702
2      MANHATTAN      1413
3         QUEENS       808
4  STATEN ISLAND       178
การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

มาฝึกกันเถอะ!

การนำเข้าข้อมูลด้วย pandas อย่างมีประสิทธิภาพ

Preparing Video For Download...