Sobes.tech
Middle

Ինչպես ցույց տալ ամեն հայտարարության արդիական հասցեն և գինը SQL-ում?

sobes.tech AI

Պատասխան AI-ից

SQL-ում յուրաքանչյուր հայտարարության համար արդիական հասցե և գին ցուցադրելու համար անհրաժեշտ է սահմանել, թե ինչ է նշանակում «արդիական» — սովորաբար դա ամենավերջին գրառումն է ըստ ամսաթվի կամ տարբերակի յուրաքանչյուր հայտարարության համար:

Ենթադրենք, կա ads աղյուսակ, որի սյունակներն են՝ ad_id, address, price, updated_at:

Օրինակ հարցում, որը յուրաքանչյուր հայտարարության համար ընտրում է առավելագույն թարմացման ամսաթվի գրառումը՝

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

Եթե տվյալների բազան աջակցում է պատուհանային ֆունկցիաներին, կարող եք օգտագործել՝

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;

Այսպիսով, հնարավոր կլինի ստանալ յուրաքանչյուր հայտարարության ամենավերջին հասցեն և գինը։