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
Thay thế:
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);
Nhưng tôi hy vọng cái đầu tiên sẽ nhanh hơn.
Btw:tại sao bạn lưu trữ ngày và giờ trong hai cột riêng biệt? Bạn có biết rằng điều này có thể được xử lý tốt hơn với timestamp
không cột?