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

पोस्टग्रेएसक्यूएल, कस्टम समुच्चय

आपने टिप्पणियों में कहा था कि एक कोड में एक ही तारीख के साथ दो पंक्तियां हो सकती हैं। तो यह समझदार डेटा है।

01.01.2014  1   3.50
01.01.2014  1  17.25
01.01.2014  1  99.34

यह बताने का कोई नियतात्मक तरीका नहीं है कि इनमें से कौन सी पंक्ति "आखिरी" है, भले ही आप कोड और "तारीख" के आधार पर छाँटें। (रिलेशनल मॉडल में - गणितीय सेट पर आधारित एक मॉडल - कॉलम का क्रम अप्रासंगिक है, और पंक्तियों का क्रम अप्रासंगिक है।) क्वेरी ऑप्टिमाइज़र पंक्तियों को वापस करने के लिए स्वतंत्र है जिस तरह से वह सबसे अच्छा सोचता है, इसलिए यह क्वेरी

select *
from temp1
order by mydate, code

इसे एक बार में वापस कर सकते हैं,

01.01.2014  1   3.50
01.01.2014  1  17.25
01.01.2014  1  99.34

और यह दूसरे पर।

01.01.2014  1   3.50
01.01.2014  1  99.34
01.01.2014  1  17.25

जब तक कि आप कुछ ऐसा मूल्य संग्रहीत नहीं करते हैं जो अंतिम . का अर्थ बनाता है जाहिर है, आप जो करने की कोशिश कर रहे हैं वह संभव नहीं है। जब लोगों को अंतिम . बनाने की आवश्यकता होती है जाहिर है, वे आमतौर पर टाइमस्टैम्प का उपयोग करते हैं।

आपके परिवर्तनों के बाद, ऐसा लगता है कि यह क्वेरी वही लौटाती है जिसकी आप तलाश कर रहे हैं।

with distinct_codes as (
  select distinct code 
  from temp1
),
corrected_table as (
select 
  case when mydate <> '' then TO_TIMESTAMP(mydate, 'DD.MM.YYYY HH24:MI:SS')
       else null
  end as mydate, 
  code, 
  price
from temp1
),
max_dates as (
  select code, max(mydate) max_date
  from corrected_table
  group by code
)
select c1.mydate, d1.code, coalesce(c1.price, 0)
from corrected_table c1
inner join max_dates m1
        on m1.code = c1.code
       and m1.max_date = c1.mydate
right join distinct_codes d1
        on d1.code = c1.code
order by code;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल और Postgresql में साप्ताहिक घंटे आवंटन समस्या

  2. PostgreSQL और अनुक्रमिक डेटा

  3. Django पूर्ण पाठ खोज अनुकूलन - पोस्टग्रेज

  4. पदानुक्रमित डेटा में XPath क्वेरी, पूर्वजों-वंशज संबंधों को संरक्षित करना

  5. बहु-किरायेदार अनुप्रयोगों के लिए PostgreSQL का स्कीमा