समस्या:
आप किसी संख्या को निकटतम पूर्णांक तक पूर्णांकित करना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में निम्नलिखित कॉलम में डेटा के साथ कर्मचारी नाम की एक टेबल है:id
, first_name
, last_name
, और hours_worked
(चालू माह के लिए)।
आईडी | <थ>प्रथम_नामlast_name | <थ>घंटे_काम किया||
---|---|---|---|
1 | एलन | वाटसन | 95 |
2 | लिसा | काला | 225 |
3 | लौरा | विलियम्स | 104 |
आइए प्रत्येक कर्मचारी के पहले और अंतिम नाम के साथ-साथ उनके द्वारा काम किए गए दिनों की संख्या भी दिखाएं। चूंकि तालिका केवल काम किए गए घंटों की संख्या दिखाती है, न कि दिनों की, इसलिए हमें इस मान की गणना स्वयं करनी होगी।
इस समस्या के लिए, हम मान लेंगे कि प्रत्येक कर्मचारी का मानक आठ घंटे का कार्यदिवस है जिसमें कोई अनियमितता नहीं है। इसलिए, काम किए गए दिनों की संख्या आठ से विभाजित घंटों की संख्या है।
समाधान:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
क्वेरी प्रत्येक कर्मचारी का पहला और अंतिम नाम और इस महीने उनके द्वारा काम किए गए दिनों की संख्या लौटाती है।
अंतिम_नाम | <थ>प्रथम_नाम <थ>दिन_काम किया||
---|---|---|
वाटसन | एलन | 11 |
काला | लिसा | 28 |
विलियम्स | लौरा | 13 |
चर्चा:
फ़्लोरिंग एक साधारण गणितीय ऑपरेशन है जो एक संख्या लेता है और इसे निकटतम पूर्णांक तक गोल करता है। उदाहरण के लिए, 5 की मंजिल 5 ही है, जबकि 5.1 की मंजिल भी 5 है। एक अन्य उदाहरण के रूप में, 4.9 की मंजिल 4 है।
SQL में, हम FLOOR फ़ंक्शन का उपयोग करते हैं। यह संख्या को गोल करने के लिए लेता है और निकटतम पूर्णांक देता है जो उससे कम या उसके बराबर है। हमारे उदाहरण में, काम किए गए दिनों की संख्या एक पूर्णांक होनी चाहिए, न कि एक फ़्लोटिंग-पॉइंट संख्या। इस प्रकार, हमने इस्तेमाल किया (FLOOR(hours_worked/8)
)।