मेरे पास Redshift तालिका t1 में एक कॉलम में तिथियों की सूची निम्नानुसार है:

dates
2020-10-25,2020-10-26,2020-10-23,2020-10-24,2020-10-25,2020-10-24,2020-10-24,2020-10-24
2020-10-25,2020-10-26,2020-10-23,2020-10-24,2020-10-25

डेटा का चयन करते समय, मैं कॉलम तिथियों में प्रदर्शित होने वाली सभी तिथियों में से एक फ़ील्ड जल्द से जल्द_डेट = मिन जोड़ना चाहता हूं। मैंने split_part का उपयोग करने की कोशिश की, लेकिन इसे 'n' यानी तारीख का स्थान चाहिए जो पंक्ति से पंक्ति में भिन्न होगा।

इसे कैसे हासिल करें?

0
Ankit Goel 27 अक्टूबर 2020, 21:57

2 जवाब

सबसे बढ़िया उत्तर

मैं अंत में एक यूडीएफ का उपयोग कर समाप्त हुआ

CREATE FUNCTION min_date (po_datelist varchar) RETURNS varchar IMMUTABLE as $$
    
    def min_date(po_datelist):
        x=min(po_datelist.split(','))
        if x=='':
            return None
        else:
            return x
    return min_date(po_datelist)
        
$$ LANGUAGE plpythonu;
0
Ankit Goel 31 अक्टूबर 2020, 05:43
create table numtable (id int) 

insert into numtable values (1) ,(2),(3),(4),(5),(6),(7),(8),(9),(10),
(11),(12),(13),(14),(15),(16),(17),(18)


select max(to_date(datestr,'yyyy-mm-dd'))
from
(
select id, split_part ('2020-10-25,2020-10-26,2020-10-23,2020-10-24,2020-10-25,2020-10-24,2020-10-24,2020-10-24
2020-10-25,2020-10-26,2020-10-23,2020-10-24,2020-10-25',',',id) datestr
from numtable
)
a
0
Amish Shah 28 अक्टूबर 2020, 17:33