दो कॉलमों के बीच का अंतर निकालना
अक्सर, आपको क्वेरी के हिस्से के रूप में गणितीय ऑपरेशन्स करने पड़ते हैं, जैसे 2000 से 2008 के बीच जनसंख्या में बदलाव निकालना. संख्याओं पर गणित करने के लिए SQLAlchemy में ऑपरेटर्स वही तरह काम करते हैं जैसे Python में करते हैं.
इन ऑपरेटर्स से आप जोड़ (+), घटाव (-), गुणा (*), भाग (/), और मॉड्यूलस (%) ऑपरेशन्स कर सकते हैं. नोट: गैर-न्यूमेरिक कॉलम टाइप्स के साथ इनका व्यवहार अलग हो सकता है.
अब आइए 2000 और 2008 के बीच जनसंख्या वृद्धि के आधार पर शीर्ष 5 राज्यों को खोजें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Databases का परिचय
अभ्यास निर्देश
stmtनाम का एक select स्टेटमेंट परिभाषित करें जो लौटाए:- i)
censusटेबल का state कॉलम (census.columns.state). - ii) 2008 (
census.columns.pop2008) और 2000 (census.columns.pop2000) के बीच जनसंख्या का अंतर, जिसका लेबल'pop_change'हो.
- i)
- स्टेटमेंट को
census.columns.stateके आधार पर group करें. - स्टेटमेंट को जनसंख्या परिवर्तन (
'pop_change') के आधार पर अवरोही क्रम में order करें. इसके लिएdesc('pop_change')पास करें. - केवल 5 रिकॉर्ड्स लौटाने के लिए पिछले स्टेटमेंट पर
.limit()मेथड का उपयोग करें. - स्टेटमेंट को execute करें और रिकॉर्ड्स को
fetchall()करें. - प्रिंट स्टेटमेंट आपके लिए पहले से लिखा हुआ है. परिणाम देखने के लिए उत्तर सबमिट करें!
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Build query to return state names by population difference from 2008 to 2000: stmt
stmt = select([____, (____-____).label(____)])
# Append group by for the state: stmt_grouped
stmt_grouped = stmt.group_by(____)
# Append order by for pop_change descendingly: stmt_ordered
stmt_ordered = stmt_grouped.order_by(____)
# Return only 5 results: stmt_top5
stmt_top5 = ____
# Use connection to execute stmt_top5 and fetch all results
results = connection.execute(____).fetchall()
# Print the state and population change for each record
for result in results:
print('{}:{}'.format(result.state, result.pop_change))