เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การนับค่าที่ไม่ซ้ำกัน

อย่างที่กล่าวถึงในวิดีโอ โมดูล func ของ SQLAlchemy ช่วยให้เข้าถึงฟังก์ชัน SQL ที่มีในตัวได้ ซึ่งทำให้การดำเนินการต่างๆ เช่น การนับและการหาผลรวมทำได้รวดเร็วและมีประสิทธิภาพยิ่งขึ้น

ในวิดีโอ Jason ใช้ func.sum() เพื่อหาผลรวมของคอลัมน์ pop2008 ในตาราง census ดังนี้:

select([func.sum(census.columns.pop2008)])

หากต้องการนับจำนวนค่าใน pop2008 แทน สามารถใช้ func.count() ได้ดังนี้:

select([func.count(census.columns.pop2008)])

ยิ่งไปกว่านั้น หากต้องการนับเฉพาะค่าที่ไม่ซ้ำกันของ pop2008 ให้ใช้เมธอด .distinct():

select([func.count(census.columns.pop2008.distinct())])

ในแบบฝึกหัดนี้ จะได้ฝึกใช้ func.count() และ .distinct() เพื่อนับจำนวนรัฐที่ไม่ซ้ำกันในตาราง census

จนถึงตอนนี้ เราได้เห็นการใช้ .fetchall(), .fetchmany() และ .first() กับ ResultProxy เพื่อดึงผลลัพธ์แล้ว นอกจากนี้ ResultProxy ยังมีเมธอดชื่อ .scalar() สำหรับดึงเฉพาะค่าจากคิวรีที่คืนผลลัพธ์เพียงหนึ่งแถวและหนึ่งคอลัมน์

เมธอดนี้มีประโยชน์มากเมื่อต้องการดึงผลลัพธ์ที่เป็นเพียงการนับหรือการหาผลรวม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้นสำหรับฐานข้อมูล

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง select statement เพื่อนับค่าที่ไม่ซ้ำกันในฟิลด์ state ของตาราง census
  • รัน stmt เพื่อรับจำนวนนับและเก็บผลลัพธ์ไว้ในตัวแปร distinct_state_count
  • แสดงค่าของ distinct_state_count

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Build a query to count the distinct states values: stmt
stmt = select([____])

# Execute the query and store the scalar result: distinct_state_count
distinct_state_count = connection.execute(____).scalar()

# Print the distinct_state_count
print(____)
แก้ไขและรันโค้ด