मैं एक पुराना MS-Access-आधारित सिस्टम PostgreSQL में परिवर्तित कर रहा हूँ। पहुँच में, फ़ील्ड जो SELECT में बनाए गए थे, उन्हें बाद के क्षेत्रों के समीकरणों के भागों के रूप में इस्तेमाल किया जा सकता है, जैसे:
SELECT
samples.id,
samples.wet_weight / samples.dry_weight - 1 AS percent_water,
100 * percent_water AS percent_water_100
FROM samples;
जब मैं PostgreSQL में ऐसा करता हूं, तो Postgres एक त्रुटि फेंकता है:
त्रुटि: कॉलम "प्रतिशत_ वाटर" मौजूद नहीं है।
यहां बताया गया है कि उप-चयन से बाहर निकलकर मैं इसके चारों ओर कैसे काम कर सकता हूं:
SELECT
s1.id,
s1.percent_water,
100 * s1.percent_water AS percent_water_100
FROM (
SELECT
samples.id,
samples.wet_weight / samples.dry_weight - 1 AS percent_water
FROM samples
) s1;
क्या जटिल घोंसले के शिकार होने के लिए पहले कोड ब्लॉक में किसी तरह का शॉर्टकट है? मैं यह भी कह सकता हूं 100 * (samples.wet_weight / samples.dry_weight - 1) AS percent_water_100
, लेकिन यह सिर्फ एक छोटा सा उदाहरण है कि मेरे कोड में गणित की एक बहुत बड़ी प्रणाली क्या चल रही है, गणित के दर्जनों और अधिक जटिल बिट्स एक दूसरे के ऊपर ढेर हो गए हैं। मैं खुद को दोहराए बिना यथासंभव सफाई से करना पसंद करूंगा।