Sobes.tech
Junior — Middle

Môžete uviesť prípady, kedy ste používali SQL dotazy, a opísať najzložitejšie z nich?

sobes.tech AI

Odpoveď od AI

V mojej praxi s SQL poizvedbami sem pogosto delal z nabori rezultatov iz več tabel z uporabo JOIN, pa tudi z agregacijami in podpoizvedbami. Na primer, ena od zahtevnejših poizvedb je vključevala:

  • Združevanje podatkov iz treh tabel (uporabniki, naročila, izdelki)
  • Filtriranje po datumu in statusu naročila
  • Združevanje po uporabnikih z izračunom skupnega zneska naročil
  • Uporabo podpoizvedbe za pridobitev največje cene izdelka v vsakem naročilu

Primer takšne poizvedbe:

SELECT u.UserName, COUNT(o.OrderID) AS OrdersCount, SUM(oi.Quantity * oi.Price) AS TotalSpent
FROM Users u
JOIN Orders o ON u.UserID = o.UserID
JOIN OrderItems oi ON o.OrderID = oi.OrderID
WHERE o.OrderDate >= '2023-01-01' AND o.Status = 'Completed'
GROUP BY u.UserName
HAVING SUM(oi.Quantity * oi.Price) > (
    SELECT AVG(TotalPrice) FROM (
        SELECT SUM(Quantity * Price) AS TotalPrice
        FROM OrderItems
        GROUP BY OrderID
    ) AS OrderTotals
)
ORDER BY TotalSpent DESC;

Ta poizvedba omogoča pridobitev seznama uporabnikov z njihovim številom in skupnim zneskom naročil, ki presegajo povprečen račun, kar je uporabno za analize in marketing.