2011-11-18 11 views
5

क्या मैं एक hstore कॉलम में मानों पर कुल क्वेरी कर सकता हूं? उदाहरण के लिए, मैं स्टोर में count फ़ील्ड के SUM को निर्धारित करना चाहता हूं।क्या मैं PostgreSQL HStore मानों पर कुल कार्यों का उपयोग कर सकता हूं?

उत्तर

14

हां। लेकिन मान टेक्स्ट के रूप में संग्रहीत होते हैं, इसलिए आपको उन्हें पहले उचित डेटा प्रकार में डालना होगा। तो, इंच में ऊंचाइयों, क्योंकि उसमें कॉलम "अन्य" में एक hstore में जमा हो जाती योग करने के लिए

CREATE TABLE my_table (
    id integer primary key, 
    other hstore 
); 
insert into my_table values 
(1, hstore('height_in', '72') || hstore('weight_lbs', '180')), 
(2, hstore('height_in', '65') || hstore('girth_in', '42')); 

select sum((other->'height_in')::integer) sum_of_height 
from my_table; 

sum_of_height 
-- 
137 
+0

क्या होगा अगर किसी भी एक पंक्ति मूल्य जो पूर्णांक में ढाला नहीं जा सकता शामिल? यह 'त्रुटि प्रदान करेगा: पूर्णांक के लिए अमान्य इनपुट वाक्यविन्यास:' तो उस पंक्ति को छोड़कर वांछित परिणाम कैसे प्राप्त करें? – RockStar

+0

@ रॉकस्टार: एक WHERE क्लॉज और नियमित अभिव्यक्ति का उपयोग करें: 'जहां (अन्य ->' height_in ') ~'^\ d + $ ''। हालांकि, यह आपके आवेदन कोड में एक त्रुटि के लिए करने की आवश्यकता है। उसे फिक्स करें। –

संबंधित मुद्दे