Sobes.tech
Middle

SQLda har bir e'lon uchun joriy manzil va narxni qanday chiqarish mumkin?

sobes.tech AI

AIdan javob

SQLda har e'lon uchun aktual manzil va narxni chiqarish uchun "aktual" nima deganini aniqlash kerak — odatda, har e'lon uchun eng so'nggi yozuv sanasi yoki versiyasiga ko'ra tanlanadi.

Faraz qilaylik, ad_id, address, price, updated_at ustunlariga ega ads jadvali mavjud.

Har e'lon uchun eng so'nggi yangilash sanasiga ega yozuvni tanlaydigan so'rov misoli:

SELECT ad_id, address, price
FROM ads a
WHERE updated_at = (
    SELECT MAX(updated_at)
    FROM ads
    WHERE ad_id = a.ad_id
);

Agar ma'lumotlar bazasi oynali funksiyalarni qo'llab-quvvatlasa, quyidagicha ishlatish mumkin:

SELECT ad_id, address, price
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY ad_id ORDER BY updated_at DESC) as rn
    FROM ads
) sub
WHERE rn = 1;

Bu har e'lon uchun eng so'nggi manzil va narxni olish imkonini beradi.