Sobes.tech
Intern

Άσκηση 2. JOIN πινάκων Απαιτήσεις: Λάβετε μια λίστα με όλους τους πελάτες (σε αλφαβητική σειρά), ανεξάρτητα αν έχουν δάνεια ή όχι, και προσθέστε σε κάθε πελάτη ένα πεδίο total_loan_amount – το συνολικό ποσό όλων των δανείων του. Αν ένας πελάτης δεν έχει δάνεια, εμφανίστε 0. Έξοδος – τρεις στήλες: client_id, client_name, total_loan_amount.

sobes.tech AI

Απάντηση από AI

Для решения задачи нужно выполнить LEFT JOIN таблицы клиентов с таблицей кредитов, сгруппировать по клиенту и посчитать сумму кредитов. Если кредитов нет, сумма будет NULL, её нужно заменить на 0 с помощью COALESCE.

Пример SQL-запроса:

SELECT
  c.client_id,
  c.client_name,
  COALESCE(SUM(l.loan_amount), 0) AS total_loan_amount
FROM clients c
LEFT JOIN loans l ON c.client_id = l.client_id
GROUP BY c.client_id, c.client_name
ORDER BY c.client_name ASC;

Здесь:

  • clients — таблица с клиентами
  • loans — таблица с кредитами
  • loan_amount — сумма кредита

Так мы получим всех клиентов, отсортированных по имени, и сумму их кредитов или 0, если кредитов нет.