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

एसक्यूएल एकाधिक पंक्तियों के लिए जल्द से जल्द तारीख का चयन करें

select customer_name,
       kwh,
       reading_date, 
       reading_time
from (
   select customer_name,
          kwh,
          reading_time,
          reading_date,
          row_number() over (partition by customer_name order by reading_time) as rn
   from readings
   where reading_date = date '2012-11-17'
) t
where rn = 1

एक विकल्प के रूप में:

select r1.customer_name,
       r1.kwh, 
       r1.reading_date,
       r1.reading_time
from readings r1
where reading_date = date '2012-11-17'
and reading_time = (select min(r2.reading_time)
                    from readings
                    where r2.customer_name = r1.customer_name
                    and r2.read_date = r1.reading_date);

लेकिन मुझे उम्मीद है कि पहले वाला तेज होगा।

बीटीडब्ल्यू:आप दिनांक और समय को दो अलग-अलग कॉलम में क्यों स्टोर करते हैं? क्या आप जानते हैं कि इसे timestamp . के साथ बेहतर ढंग से नियंत्रित किया जा सकता है कॉलम?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज:ARRAY_AGG और HAVING (WHERE के बजाय) का उपयोग करके परिणामों को फ़िल्टर करना

  2. DatabaseError:टाइप कैरेक्टर के लिए बहुत लंबा मान (100)

  3. 1=1 पर शामिल हों (चुनें ...)?

  4. कई संघों से संबंधित सीक्वेलाइज़ की अनूठी बाधाओं के आसपास काम करें

  5. Postgresql संग्रहीत कार्यविधि वापसी तालिका सभी कॉलम