Wykorzystanie SQL do analizy danych w sklepie internetowym
SQL (Structured Query Language) to jedno z najważniejszych narzędzi do zarządzania bazami danych. Dzięki niemu możemy pobierać, filtrować i analizować informacje, co jest kluczowe w zarządzaniu sklepem internetowym. W tym artykule omówimy kilka przydatnych zapytań SQL, które pomogą w analizie danych klientów i zamówień.
1. Klienci, którzy złożyli zamówienia w 2023 roku
Aby znaleźć klientów, którzy dokonali zakupów w określonym roku, możemy użyć zapytania:
SELECT DISTINCT klienci.imie, klienci.nazwisko
FROM klienci
JOIN zamowienia ON klienci.id = zamowienia.klient_id
WHERE strftime('%Y', zamowienia.data) = '2023';
To zapytanie łączy tabelę klientów z tabelą zamówień i filtruje wyniki na podstawie roku.
2. Produkty zamówione przez klientów z Gdańska
Aby znaleźć produkty zamówione przez klientów z Gdańska:
SELECT DISTINCT produkty.nazwa
FROM produkty
JOIN zamowienia ON produkty.id = zamowienia.produkt_id
JOIN klienci ON zamowienia.klient_id = klienci.id
WHERE klienci.miasto = 'Gdańsk';
Zapytanie łączy trzy tabele i filtruje zamówienia klientów pochodzących z konkretnego miasta.
3. Klienci, którzy nie złożyli zamówienia
Aby znaleźć klientów, którzy nigdy nie dokonali zakupu:
SELECT klienci.imie, klienci.nazwisko, klienci.miasto
FROM klienci
LEFT JOIN zamowienia ON klienci.id = zamowienia.klient_id
WHERE zamowienia.id IS NULL;
Tutaj używamy LEFT JOIN i sprawdzamy, którzy klienci nie mają powiązanych zamówień.
4. Suma wydatków klientów
Chcemy dowiedzieć się, ile każdy klient wydał w sklepie:
SELECT klienci.imie, klienci.nazwisko, SUM(zamowienia.kwota) AS suma_wydatkow
FROM klienci
JOIN zamowienia ON klienci.id = zamowienia.klient_id
GROUP BY klienci.id;
Dzięki funkcji SUM() obliczamy całkowitą wartość zamówień dla każdego klienta.
5. Zamówienia zawierające konkretny produkt
Aby znaleźć wszystkie zamówienia, które zawierają „Produkt A”:
SELECT zamowienia.id, zamowienia.data, klienci.imie
FROM zamowienia
JOIN produkty ON zamowienia.produkt_id = produkty.id
JOIN klienci ON zamowienia.klient_id = klienci.id
WHERE produkty.nazwa = 'Produkt A';
To zapytanie pozwala na szybkie znalezienie interesujących nas transakcji.
6. Klienci z wieloma zamówieniami
Chcemy znaleźć klientów, którzy złożyli więcej niż jedno zamówienie:
SELECT klienci.imie, klienci.nazwisko, COUNT(zamowienia.id) AS liczba_zamowien
FROM klienci
JOIN zamowienia ON klienci.id = zamowienia.klient_id
GROUP BY klienci.id
HAVING COUNT(zamowienia.id) > 1;
Użycie funkcji COUNT() i klauzuli HAVING pozwala na filtrowanie wyników według liczby zamówień.
7. Produkty, które nie zostały zamówione
Aby znaleźć produkty, które nie zostały nigdy zamówione:
SELECT produkty.nazwa
FROM produkty
LEFT JOIN zamowienia ON produkty.id = zamowienia.produkt_id
WHERE zamowienia.id IS NULL;
Dzięki LEFT JOIN możemy sprawdzić, które produkty nie występują w tabeli zamówień.
8. Klienci z ostatnimi zamówieniami
Aby znaleźć klientów, którzy dokonali zakupu w ciągu ostatniego roku:
SELECT klienci.imie, klienci.nazwisko, MAX(zamowienia.data) AS ostatnie_zamowienie
FROM klienci
JOIN zamowienia ON klienci.id = zamowienia.klient_id
WHERE zamowienia.data >= DATE('now', '-1 year')
GROUP BY klienci.id;
To zapytanie pokazuje ostatnie zamówienie dla każdego klienta, który kupił coś w ciągu ostatnich 12 miesięcy.
Podsumowanie
SQL to niezwykle potężne narzędzie pozwalające na analizę danych w bazach sklepów internetowych. Dzięki umiejętnemu stosowaniu JOIN, GROUP BY oraz funkcji agregujących możemy uzyskać cenne informacje o klientach i sprzedaży. Mam nadzieję, że te przykłady pomogą w zrozumieniu podstaw SQL i jego praktycznego zastosowania!