Sobes.tech
Junior — Middle

Можете ли да разкажете случаи, когато сте използвали SQL заявки, и да опишете най-сложните от тях?

sobes.tech AI

Отговор от AI

В моята практика с SQL заявки често съм работил с резултатни множества от няколко таблици чрез JOIN, както и с агрегирания и подзаявки. Например, една от сложните заявки включваше:

  • Обединяване на данни от три таблици (потребители, поръчки, продукти)
  • Филтриране по дата и статус на поръчката
  • Групиране по потребители с изчисляване на сумата на поръчките
  • Използване на подзаявка за получаване на максималната цена на продукта във всяка поръчка

Пример за такава заявка:

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;

Този тип заявка позволява да се получи списък с потребители с броя и сумата на техните поръчки, които надхвърлят средния чек, което е полезно за анализ и маркетинг.