SQL'de Tarihe Göre En Son Kaydı Seçin

Sql De Tarihe Gore En Son Kaydi Secin



Bir SQL veritabanında çalışırken, belirli bir tablodaki tarihe dayalı en son kaydı almanız gereken bir örnekle karşılaşabilirsiniz. Bu, sayfalandırma, envanter yönetimi, izleme amaçları vb. için olabilir.

Bu kılavuzda, tarihe dayalı bir tablodan en yeni kaydı seçmek için kullanabileceğimiz çeşitli yöntem ve teknikleri size anlatacağız.

Örnek veri

Gösterim amacıyla MySQL ve PostgreSQL türleri için mevcut olan Sakila örnek veritabanını kullanıyoruz.







Örnek veritabanını sunucunuza indirip içe aktarmaktan çekinmeyin. Ayrıca uygun olan başka herhangi bir veri kümesini de kullanabilirsiniz.



Örnek 1: SİPARİŞ ŞEKLİ

Tarihe göre en yeni kaydı almak için kullanabileceğimiz en temel ve en basit yöntem, SQL ORDER BY cümlesini kullanmaktır.



Kayıtları tarih değerine göre azalan şekilde sıralayabilir ve ardından sonucu yalnızca bir satırla sınırlandırabiliriz.





Örneğin Sakila örnek veri tabanındaki kiralama tablosunu ele alalım. Filmin kiralandığı tarihi belirten “rental_date” sütununu içerir.

Bunu, tablodan en son kaydı almak için ORDER BY ifadesinin nasıl kullanılacağını göstermek için kullanabiliriz.



SEÇME *

Kiralamadan itibaren

EMİR kiralama_tarihine göre DESC

SINIR 1 ;

Bu durumda ORDER BY deyimini kullanırız ve hedef sütun olarak “kiralama_tarihi”ni geçiririz. Ayrıca veritabanına kayıtları azalan sırada sıralamasını da sağlıyoruz.

Son olarak, tablodaki en son satırı döndürecek çıktı kayıtlarının sayısını da sınırlıyoruz.

Örnek 2: Max() İşlevini Kullanma

Tarih değerlerinde max() fonksiyonunu kullanabileceğimizi biliyor muydunuz? Evet, belirli bir tablodan en son kaydı almak için basit bir SQL alt sorgusunu ve tarih değerlerinde max() işlevini kullanabiliriz.

Aşağıdaki örneği düşünün:

SEÇME *

Kiralamadan itibaren

NEREDE kiralama_tarihi = (Kiralamadan MAX(kiralama_tarihi) SEÇİN);

Alt sorguyu kullanarak tablodan maksimum kiralama tarihini bulur. Ana sorguda “rental_date” değeri maksimum tarihe eşit olan kayıtları getirmeliyiz.

Örnek 3: Pencere İşlevleri

Pencere işlevlerini destekleyen veritabanları için, tablodan en son kaydı almak için bir alt sorgu ve row_number() işlevini aşağıdaki gibi kullanabiliriz:

SEÇME *

İTİBAREN (

SEÇME *,

ROW_NUMBER() ÜZERİNDE ( EMİR kiralama_tarihine göre DESC) AS rn

Kiralamadan itibaren

) AS alt sorgusu

NEREDE rn = 1 ;

Verilen örnekte alt sorgu, ROW_NUMBER() pencere fonksiyonunu kullanarak 'kiralama_tarihi' sütununu temel alarak azalan sırada her satıra bir satır numarası atar.

Daha sonra dış sorgu, satır numarasının 1 olduğu alt sorgudaki tüm sütunları seçerek en güncel kiralık kayıtları etkili bir şekilde seçer.

Çözüm

Bu yazıda, bir tarihe dayalı en son kaydı getirmek için kullanabileceğimiz çeşitli yöntem ve teknikleri araştırdık.