संपादित करें:
अनिवार्य रूप से, के साथ avg
कुल का उपयोग मैं इस बारे में कुछ और सोच किया और महसूस किया कि आप न सिर्फ 5 मिनट के लिए 2 मिनट से जा सकते हैं। यह जोड़ नहीं है। मैं उस पर फॉलो-अप करूंगा, लेकिन एक बार आपके पास कुल 1-मिनट डेटा होने के बाद निम्न कोड काम करता है!
-
डेटा एक 'शुरुआत' प्रारूप में है, तो आप इस समारोह के अंदर कोड का उपयोग कर सकते हैं, या अपने डेटाबेस पर समारोह का उपयोग में आसानी के लिए बनाने के लिए:
CREATE OR REPLACE FUNCTION dev.beginning_datetime_floor(timestamp without time zone,
integer) /* switch out 'dev' with your schema name */
RETURNS timestamp without time zone AS
$BODY$
SELECT
date_trunc('minute',timestamp with time zone 'epoch' +
floor(extract(epoch from $1)/($2*60))*$2*60
* interval '1 second') at time zone 'CST6CDT' /* change this to your time zone */
$BODY$
LANGUAGE sql VOLATILE;
तुम बस
select dev.beginning_datetime_floor('2012-01-01 02:02:21',2)
: यह आप पर इकट्ठा करना चाहते हैं मिनट के पूर्णांक संख्या (प्रयोग 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, या 30) को खिलाने के लिए, यहाँ एक जोड़ी परिणाम है = '2012-01-01 02:02:00'
select dev.beginning_datetime_floor('2012-01-01 02:02:21',5)
= '2012-01-01 02:00:00'
बस इसे बाहर का परीक्षण करने और जोड़ने के लिए या built-in timestamp functions का उपयोग कर timestamps न खत्म होने वाली बनाम शुरुआत को संभालने के लिए समय घटाना।
जब आप अपना इच्छित टाइमस्टैम्प प्राप्त करते हैं, तो क्रेग ने कहा, और उस टाइमस्टैम्प पर ग्रुप बाय, वांछित aggregate functions (संभावित औसत) के संयोजन के साथ करें।
आप परीक्षण कर सकते हैं/साथ यह tweak: यह बाहर बारी सकता है कि आप टाइम स्टांप औसत करने के लिए चाहते हैं
date_trunc('minute',timestamp with time zone 'epoch' +
floor(extract(epoch from your_datetime)/(interval_minutes*60))*interval_minutes*60
* interval '1 second') at time zone 'CST6CDT' /* change this to your time zone */
- अगर आपकी अंतराल अवधि उदाहरण के लिए अस्थिर है। इसके लिए, आप एक समान कार्य कर सकते हैं जो फर्श लेने के बजाए टाइमस्टैम्प को घेरता है।
पोस्ट नमूना डेटा: आपके पास क्या है, आपको क्या चाहिए। एक नमूना परीक्षण करने के लिए आसान होने के लिए इसे आवेषण कथन के रूप में लिखें। साथ ही, हमें बताएं कि आप किस डेटाबेस ब्रांड का उपयोग कर रहे हैं। – danihp
@danihp डेटा नमूना: [1 2007-09-14 22:56:12 5.3 9 2 2007-09-14 22:58:12 5.34 3 2007-09-14 23:00:12 5.16 4 2007-09 -14 23:02:12 5.54 5 2007-09-14 23:04:12 5.30 6 2007-09-14 23:06:12 5.20] अपेक्षित परिणाम: 1 2007-09-14 23:00 5.2 9 2 2007-09-14 23:06 5.34, मैं PostgreSQL –
@aliamidi का उपयोग कर रहा हूं - आपको वास्तव में इस तरह की जानकारी को प्रश्न में रखना चाहिए, टिप्पणी नहीं। मैंने आपके लिए प्रश्न में किए गए संपादन को देखें ... इसके अलावा, कृपया आप समझा सकते हैं कि आउटपुट की अपेक्षा की गई क्यों है? दूसरा रिकॉर्ड '23: 06' और' 23: 05' क्यों नहीं है? और अपेक्षित '5.34' कहां से आते हैं? – MatBailie