PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

लापता तिथि के लिए डेटा के साथ तालिका भरें (पोस्टग्रेस्क्ल, रेडशिफ्ट)

क्वेरी के पीछे के विचार को देखें:

select distinct on (domain, new_date) *
from (
    select new_date::date 
    from generate_series('2016-04-12', '2016-04-17', '1d'::interval) new_date
    ) s 
left join a_table t on date <= new_date
order by domain, new_date, date desc;

  new_date  |     domain      |    date    | visitors | hits  
------------+-----------------+------------+----------+-------
 2016-04-12 | www.domain1.com | 2016-04-12 |     1231 | 23423
 2016-04-13 | www.domain1.com | 2016-04-13 |     1374 | 26482
 2016-04-14 | www.domain1.com | 2016-04-13 |     1374 | 26482
 2016-04-15 | www.domain1.com | 2016-04-13 |     1374 | 26482
 2016-04-16 | www.domain1.com | 2016-04-13 |     1374 | 26482
 2016-04-17 | www.domain1.com | 2016-04-17 |     1262 | 21493
(6 rows)

आपको अपनी आवश्यकताओं के अनुसार प्रारंभ और समाप्ति तिथियां चुननी होंगी। क्वेरी काफी महंगी हो सकती है (आपने अरबों अंतराल के बारे में उल्लेख किया है) इसलिए इसे सावधानी के साथ लागू करें (एक छोटे डेटा सबसेट पर परीक्षण करें या चरणों द्वारा निष्पादित करें)।

generate_series() . के अभाव में आप अपना खुद का जनरेटर बना सकते हैं। यहां एक दिलचस्प उदाहरण दिया गया है . उद्धृत लेख के दृश्यों का उपयोग generate_series() . के बजाय किया जा सकता है . उदाहरण के लिए, अगर आपको '2016-04-12' + 5 days . की अवधि चाहिए :

select distinct on (domain, new_date) *
from (
    select '2016-04-12'::date+ n new_date
    from generator_16
    where n < 6
    ) s 
left join a_table t on date <= new_date
order by domain, new_date, date desc;

आपको पहले उदाहरण जैसा ही परिणाम मिलेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OS X पर Postgres.app का उपयोग करते समय psql को पथ पर कैसे रखें?

  2. जेपीए 2 इकाई में समय क्षेत्र के साथ पोस्टग्रेस्क्ल टाइमस्टैम्प को कैसे मैप करें

  3. Postgresql GROUP_CONCAT समकक्ष?

  4. क्या जेपीए (एक्लिप्सलिंक) कस्टम प्रकार संभव हैं?

  5. Postgresql कॉलम नहीं मिला, लेकिन वर्णन में दिखाता है