महिलाओं का कुल प्रतिशत निर्धारित करना
एक ही select स्टेटमेंट में फंक्शंस और ऑपरेटर्स को मिलाना भी संभव है.
ऐसे कॉम्बिनेशन प्रतिशत या औसत निकालने में बेहद उपयोगी होते हैं, और हम case() एक्सप्रेशन का उपयोग
ऐसे डेटा पर ऑपरेट करने के लिए कर सकते हैं जो किसी खास शर्त को पूरा करता हो, जबकि बाकी क्वेरी अप्रभावित रहती है.
case() एक्सप्रेशन उन कंडीशंस की सूची लेता है जिनसे मिलान करना है और वह कॉलम जिसे कंडीशन मिलने पर लौटाना है, और अंत में else_ जब कोई कंडीशन न मिले. हम इस पूरे एक्सप्रेशन को अपनी पसंद के किसी भी फंक्शन या गणितीय ऑपरेशन में रैप कर सकते हैं.
अक्सर, जब हम integer division करते हैं, तो हमें float वापस चाहिए होता है. कुछ डेटाबेस यह अपने-आप कर देते हैं, लेकिन आप cast() फंक्शन का उपयोग करके किसी एक्सप्रेशन को एक खास टाइप में कन्वर्ट कर सकते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Databases का परिचय
अभ्यास निर्देश
sqlalchemyसेcase,cast, औरFloatइम्पोर्ट करें.- 2000 में महिला जनसंख्या निकालने के लिए
female_pop2000नाम का एक एक्सप्रेशन बनाएँ. ऐसा करने के लिए:func.sum()के अंदरcase()का उपयोग करें.case()का पहला आर्ग्युमेंट एक लिस्ट होगी जिसमें एक tuple होगा, जिसमें:- i) एक बूलियन जो चेक करे कि
census.columns.sex'F'के बराबर है. - ii) कॉलम
census.columns.pop2000.
- i) एक बूलियन जो चेक करे कि
- दूसरा आर्ग्युमेंट
else_कंडीशन है, जिसे 0 रखना है.
- 2000 की कुल जनसंख्या निकालें और
cast()का उपयोग करके उसेFloatमें कन्वर्ट करें. - 2000 में महिलाओं का प्रतिशत निकालने के लिए क्वेरी बनाएँ. इसके लिए,
female_pop2000कोtotal_pop2000से भाग दें और100से गुणा करें. - क्वेरी चलाएँ और
percent_femaleप्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# import case, cast and Float from sqlalchemy
from sqlalchemy import ____, ____, ____
# Build an expression to calculate female population in 2000
female_pop2000 = func.sum(
____([
(____ == ____, ____)
], else_=____))
# Cast an expression to calculate total population in 2000 to Float
total_pop2000 = cast(func.sum(____), ____)
# Build a query to calculate the percentage of women in 2000: stmt
stmt = select([____ / ____* 100])
# Execute the query and store the scalar result: percent_female
percent_female = connection.execute(____).scalar()
# Print the percentage
print(____)