{"id":1092,"date":"2022-12-18T10:40:25","date_gmt":"2022-12-18T09:40:25","guid":{"rendered":"https:\/\/piotrgabriel.pl\/wiki\/?p=1092"},"modified":"2024-12-04T07:49:09","modified_gmt":"2024-12-04T06:49:09","slug":"funkcje-agregujace-w-sql-sum-distinct-group-by-kompletny-przewodnik-z-przykladami","status":"publish","type":"post","link":"https:\/\/piotrgabriel.pl\/wiki\/funkcje-agregujace-w-sql-sum-distinct-group-by-kompletny-przewodnik-z-przykladami\/","title":{"rendered":"Funkcje agreguj\u0105ce w SQL: SUM, DISTINCT, GROUP BY \u2013 Kompletny przewodnik z przyk\u0142adami"},"content":{"rendered":"<p>SQL (Structured Query Language) to j\u0119zyk u\u017cywany do zarz\u0105dzania danymi w relacyjnych bazach danych. Funkcje agreguj\u0105ce, takie jak <code>SUM<\/code>, <code>DISTINCT<\/code> i grupowanie za pomoc\u0105 <code>GROUP BY<\/code>, s\u0105 nieodzownymi narz\u0119dziami w analizie danych. W tym artykule om\u00f3wimy ich zastosowanie na przyk\u0142adach z bazy danych zawieraj\u0105cej informacje o u\u017cytkownikach, zam\u00f3wieniach i produktach.<!--more--><\/p>\n<h2><strong>Czym s\u0105 funkcje agreguj\u0105ce w SQL?<\/strong><\/h2>\n<p>Funkcje agreguj\u0105ce wykonuj\u0105 obliczenia na zbiorach danych, zwracaj\u0105c jedn\u0105 warto\u015b\u0107 dla ca\u0142ej grupy. Najcz\u0119\u015bciej u\u017cywane funkcje agreguj\u0105ce to:<\/p>\n<ul>\n<li><code>SUM<\/code>: Suma warto\u015bci w kolumnie.<\/li>\n<li><code>DISTINCT<\/code>: Eliminacja duplikat\u00f3w w wynikach.<\/li>\n<li><code>GROUP BY<\/code>: Grupowanie danych na podstawie jednej lub wi\u0119cej kolumn.<\/li>\n<\/ul>\n<h2><strong>Przyk\u0142ady z bazy danych<\/strong><\/h2>\n<h3><strong>Przyk\u0142ad 1: Obliczanie \u0142\u0105cznej warto\u015bci zam\u00f3wie\u0144 (<code>SUM<\/code>)<\/strong><\/h3>\n<p>Funkcja <code>SUM<\/code> umo\u017cliwia zsumowanie warto\u015bci w kolumnie, np. ca\u0142kowitej liczby zam\u00f3wionych produkt\u00f3w lub ich warto\u015bci. Za\u0142\u00f3\u017cmy, \u017ce mamy tabel\u0119 <code>Szczegoly_Zamowienia<\/code>, kt\u00f3ra przechowuje informacje o liczbie zam\u00f3wionych produkt\u00f3w oraz ich cenach.<\/p>\n<p><code>SELECT <\/code><br \/>\n<code>ID_Zamowienia,<\/code><br \/>\n<code>SUM(Ilosc * Cena_Netto) AS Laczna_Wartosc<\/code><br \/>\n<code>FROM <\/code><br \/>\n<code>Szczegoly_Zamowienia<\/code><br \/>\n<code>INNER JOIN <\/code><br \/>\n<code>Magazyn ON Szczegoly_Zamowienia.ID_Produktu = Magazyn.ID_Produktu<\/code><br \/>\n<code>GROUP BY <\/code><br \/>\n<code>ID_Zamowienia;<\/code><\/p>\n<p>Wyja\u015bnienie:<\/p>\n<ul>\n<li><code>Ilosc * Cena_Netto<\/code>: Oblicza warto\u015b\u0107 zam\u00f3wienia dla ka\u017cdego produktu.<\/li>\n<li><code>SUM<\/code>: Sumuje warto\u015bci produkt\u00f3w w ramach jednego zam\u00f3wienia.<\/li>\n<li><code>GROUP BY<\/code>: Grupuje wyniki wed\u0142ug identyfikatora zam\u00f3wienia.<\/li>\n<\/ul>\n<h3><strong>Przyk\u0142ad 2: Eliminacja duplikat\u00f3w (<code>DISTINCT<\/code>)<\/strong><\/h3>\n<p>Funkcja <code>DISTINCT<\/code> jest u\u017cywana, gdy chcemy wy\u015bwietli\u0107 unikalne warto\u015bci w kolumnie. Na przyk\u0142ad, aby zobaczy\u0107, z kt\u00f3rych miast pochodz\u0105 nasi klienci.<\/p>\n<p><code><span class=\"hljs-keyword\">SELECT<\/span> <span class=\"hljs-keyword\">DISTINCT<\/span> Miasto <span class=\"hljs-keyword\">FROM<\/span> Uzytkownicy;<\/code><\/p>\n<p><strong>Wyja\u015bnienie:<\/strong><\/p>\n<ul>\n<li><code>DISTINCT<\/code>: Usuwa duplikaty, wy\u015bwietlaj\u0105c ka\u017cde miasto tylko raz.<\/li>\n<\/ul>\n<h3><strong>Przyk\u0142ad 3: Liczenie liczby zam\u00f3wie\u0144 na u\u017cytkownika (<code>COUNT<\/code>)<\/strong><\/h3>\n<p>Funkcja <code>COUNT<\/code> pozwala policzy\u0107 ilo\u015b\u0107 wierszy w grupie. Poni\u017cej przyk\u0142ad liczenia liczby zam\u00f3wie\u0144 z\u0142o\u017conych przez ka\u017cdego u\u017cytkownika.<\/p>\n<p><code>SELECT <\/code><br \/>\n<code>Uzytkownicy.Imie,<\/code><br \/>\n<code>Uzytkownicy.Nazwisko,<\/code><br \/>\n<code>COUNT(Zamowienia.ID_Zamowienia) AS Liczba_Zamowien<\/code><br \/>\n<code>FROM <\/code><br \/>\n<code>Uzytkownicy<\/code><br \/>\n<code>INNER JOIN <\/code><br \/>\n<code>Zamowienia ON Uzytkownicy.ID_Uzytkownika = Zamowienia.ID_Uzytkownika<\/code><br \/>\n<code>GROUP BY <\/code><br \/>\n<code>Uzytkownicy.Imie, Uzytkownicy.Nazwisko;<\/code><\/p>\n<p><strong>Wyja\u015bnienie:<\/strong><\/p>\n<ul>\n<li><code>COUNT<\/code>: Zlicza ilo\u015b\u0107 zam\u00f3wie\u0144 dla ka\u017cdego u\u017cytkownika.<\/li>\n<li><code>GROUP BY<\/code>: Grupuje dane wed\u0142ug imienia i nazwiska u\u017cytkownika.<\/li>\n<\/ul>\n<h3><strong>Przyk\u0142ad 4: Produkty w magazynie z ilo\u015bci\u0105 wi\u0119ksz\u0105 ni\u017c 20 (<code>HAVING<\/code>)<\/strong><\/h3>\n<p>Je\u015bli chcemy filtrowa\u0107 wyniki po funkcji agreguj\u0105cej, u\u017cywamy <code>HAVING<\/code> zamiast <code>WHERE<\/code>. Za\u0142\u00f3\u017cmy, \u017ce interesuj\u0105 nas produkty o \u0142\u0105cznej liczbie wi\u0119kszej ni\u017c 20.<\/p>\n<p><code>SELECT <\/code><br \/>\n<code>Nazwa_Produktu,<\/code><br \/>\n<code>SUM(Stan_Magazynowy) AS Laczny_Stan<\/code><br \/>\n<code>FROM <\/code><br \/>\n<code>Magazyn<\/code><br \/>\n<code>GROUP BY <\/code><br \/>\n<code>Nazwa_Produktu<\/code><br \/>\n<code>HAVING <\/code><br \/>\n<code>SUM(Stan_Magazynowy) &gt; 20;<\/code><\/p>\n<p><strong>Wyja\u015bnienie:<\/strong><\/p>\n<ul>\n<li><code>GROUP BY<\/code>: Grupuje dane wed\u0142ug produktu.<\/li>\n<li><code>SUM<\/code>: Liczy \u0142\u0105czn\u0105 ilo\u015b\u0107 danego produktu.<\/li>\n<li><code>HAVING<\/code>: Filtruje produkty, kt\u00f3rych stan magazynowy jest wi\u0119kszy ni\u017c 20.<\/li>\n<\/ul>\n<h3><strong>Przyk\u0142ad 5: Najdro\u017csze produkty w magazynie (<code>MAX<\/code>)<\/strong><\/h3>\n<p>Funkcja <code>MAX<\/code> zwraca najwi\u0119ksz\u0105 warto\u015b\u0107 w kolumnie. Poni\u017cej przyk\u0142ad wy\u015bwietlenia najdro\u017cszego produktu w magazynie.<\/p>\n<p><code>SELECT <\/code><br \/>\n<code>Nazwa_Produktu,<\/code><br \/>\n<code>MAX(Cena_Netto) AS Najwyzsza_Cena<\/code><br \/>\n<code>FROM <\/code><br \/>\n<code>Magazyn;<\/code><\/p>\n<p><strong>Wyja\u015bnienie:<\/strong><\/p>\n<ul>\n<li><code>MAX<\/code>: Znajduje najwy\u017csz\u0105 cen\u0119 w kolumnie <code>Cena_Netto<\/code>.<\/li>\n<\/ul>\n<h2><strong>Ko\u0144cz\u0105c..<\/strong><\/h2>\n<p>Funkcje agreguj\u0105ce (<code>SUM<\/code>, <code>COUNT<\/code>, <code>MAX<\/code>) oraz grupowanie (<code>GROUP BY<\/code>, <code>HAVING<\/code>) pozwalaj\u0105 na efektywn\u0105 analiz\u0119 du\u017cych zbior\u00f3w danych:<\/p>\n<ul>\n<li>Umo\u017cliwiaj\u0105 podsumowywanie informacji (np. \u0142\u0105cznej warto\u015bci zam\u00f3wie\u0144).<\/li>\n<li>Pozwalaj\u0105 na wy\u015bwietlanie unikalnych warto\u015bci (<code>DISTINCT<\/code>) i tworzenie bardziej zaawansowanych filtr\u00f3w danych.<\/li>\n<\/ul>\n<p>Te przyk\u0142ady pokazuj\u0105, jak w prosty spos\u00f3b wykorzystywa\u0107 te narz\u0119dzia w codziennej pracy z bazami danych. Dzi\u0119ki nim SQL staje si\u0119 pot\u0119\u017cnym narz\u0119dziem analitycznym z kt\u00f3rym za pomoc\u0105 kilku linijek, mo\u017cemy w bardzo r\u00f3\u017cny spos\u00f3b wyci\u0105ga\u0107 dane dotycz\u0105ce nawet kilku prostych tabel.<\/p>\n<h2>Gotowa baza danych do \u0107wiczenia<\/h2>\n<p><code><span style=\"font-weight: 400;\">CREATE TABLE Uzytkownicy (<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Uzytkownika INT PRIMARY KEY AUTO_INCREMENT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Imie VARCHAR(50),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Nazwisko VARCHAR(50),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Miasto VARCHAR(50),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Ulica VARCHAR(100),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Kod_Pocztowy VARCHAR(10)<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">);<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">CREATE TABLE Zamowienia (<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Zamowienia INT PRIMARY KEY AUTO_INCREMENT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Uzytkownika INT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Data_Zamowienia DATE,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0FOREIGN KEY (ID_Uzytkownika) REFERENCES Uzytkownicy(ID_Uzytkownika)<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">);<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">CREATE TABLE Magazyn (<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Produktu INT PRIMARY KEY AUTO_INCREMENT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Nazwa_Produktu VARCHAR(100),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Cena_Netto DECIMAL(10,2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Stan_Magazynowy INT<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">);<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">CREATE TABLE Szczegoly_Zamowienia (<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Szczegolu INT PRIMARY KEY AUTO_INCREMENT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Zamowienia INT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0ID_Produktu INT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Ilosc INT,<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0FOREIGN KEY (ID_Zamowienia) REFERENCES Zamowienia(ID_Zamowienia),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0FOREIGN KEY (ID_Produktu) REFERENCES Magazyn(ID_Produktu)<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">);<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">INSERT INTO Uzytkownicy (Imie, Nazwisko, Miasto, Ulica, Kod_Pocztowy) VALUES<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Jan', 'Kowalski', 'Warszawa', 'Marsza\u0142kowska 10', '00-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Anna', 'Nowak', 'Krak\u00f3w', 'Floria\u0144ska 15', '31-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Piotr', 'Wi\u015bniewski', 'Gda\u0144sk', 'D\u0142uga 5', '80-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Katarzyna', 'W\u00f3jcik', '\u0141\u00f3d\u017a', 'Piotrkowska 20', '90-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Tomasz', 'Kami\u0144ski', 'Wroc\u0142aw', '\u015awidnicka 8', '50-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Magdalena', 'Lewandowska', 'Pozna\u0144', 'G\u0142ogowska 25', '60-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Pawe\u0142', 'Zieli\u0144ski', 'Szczecin', 'Niepodleg\u0142o\u015bci 12', '70-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Ewa', 'Szyma\u0144ska', 'Katowice', 'Stawowa 30', '40-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Micha\u0142', 'Wo\u017aniak', 'Bydgoszcz', 'Dworcowa 18', '85-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Agnieszka', 'D\u0105browska', 'Lublin', 'Krakowskie Przedmie\u015bcie 45', '20-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Grzegorz', 'Adamski', 'Rzesz\u00f3w', 'Rejtana 5', '35-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Monika', 'B\u0105k', 'Opole', 'Ozimska 15', '45-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Sylwia', 'Pawlak', 'Cz\u0119stochowa', 'Jasnog\u00f3rska 12', '42-200'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Mateusz', 'Kaczmarek', 'Toru\u0144', 'Szeroka 18', '87-100'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Karolina', 'G\u00f3rska', 'Gliwice', 'Zwyci\u0119stwa 22', '44-100'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('\u0141ukasz', 'Chmielewski', 'Olsztyn', 'Ko\u015bciuszki 7', '10-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Alicja', 'Zaj\u0105c', 'Kielce', 'Sienkiewicza 9', '25-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Kamil', 'Sikora', 'Bia\u0142ystok', 'Lipowa 6', '15-001'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Joanna', 'Kr\u00f3l', 'Legnica', 'Wroc\u0142awska 14', '59-220'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Patryk', 'Michalski', 'Zielona G\u00f3ra', 'Niepodleg\u0142o\u015bci 3', '65-001');<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">INSERT INTO Magazyn (Nazwa_Produktu, Cena_Netto, Stan_Magazynowy) VALUES<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Laptop', 2500.00, 10),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Smartphone', 1500.00, 25),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Klawiatura', 120.00, 50),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Mysz komputerowa', 80.00, 40),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Monitor', 600.00, 15),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Router WiFi', 200.00, 20),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Drukarka', 700.00, 5),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Tablet', 900.00, 18),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('S\u0142uchawki', 150.00, 35),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Powerbank', 100.00, 30),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Komputer stacjonarny', 3000.00, 8),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Dysk SSD 1TB', 400.00, 20),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Pami\u0119\u0107 RAM 16GB', 250.00, 25),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Kamera internetowa', 150.00, 30),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Zasilacz komputerowy', 200.00, 15),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Karta graficzna', 1200.00, 10),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Obudowa komputerowa', 350.00, 12),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Kabel HDMI', 50.00, 40),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Podk\u0142adka pod mysz', 30.00, 50),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">('Mikrofon', 200.00, 18);<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">INSERT INTO Zamowienia (ID_Uzytkownika, Data_Zamowienia) VALUES<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(1, '2024-01-15'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(2, '2024-01-16'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(3, '2024-01-17'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(4, '2024-01-18'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(5, '2024-01-19'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(6, '2024-01-20'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(7, '2024-01-21'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(8, '2024-01-22'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(9, '2024-01-23'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(10, '2024-01-24'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(11, '2024-01-25'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(12, '2024-01-26'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(13, '2024-01-27'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(14, '2024-01-28'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(15, '2024-01-29'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(16, '2024-01-30'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(17, '2024-01-31'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(18, '2024-02-01'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(19, '2024-02-02'),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(20, '2024-02-03');<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p><code><span style=\"font-weight: 400;\">INSERT INTO Szczegoly_Zamowienia (ID_Zamowienia, ID_Produktu, Ilosc) VALUES<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(1, 1, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(1, 3, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(2, 2, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(3, 4, 3),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(4, 5, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(5, 6, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(6, 7, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(7, 8, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(8, 9, 4),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(9, 10, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(10, 1, 3),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(11, 2, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(11, 5, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(12, 3, 4),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(13, 6, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(14, 1, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(15, 4, 3),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(16, 7, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(17, 8, 5),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(18, 9, 2),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(19, 10, 1),<\/span><\/code><\/p>\n<p><code><span style=\"font-weight: 400;\">(20, 2, 3);<\/span><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL (Structured Query Language) to j\u0119zyk u\u017cywany do zarz\u0105dzania danymi w relacyjnych bazach danych. Funkcje agreguj\u0105ce, takie jak SUM, DISTINCT i grupowanie za pomoc\u0105 GROUP BY, s\u0105 nieodzownymi narz\u0119dziami w analizie danych. W tym artykule om\u00f3wimy ich zastosowanie na przyk\u0142adach [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":155,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[24,226],"class_list":["post-1092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bazy-danych","tag-mysql","tag-operatory-laczenia-sql"],"_links":{"self":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/comments?post=1092"}],"version-history":[{"count":2,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1092\/revisions"}],"predecessor-version":[{"id":1094,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1092\/revisions\/1094"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media\/155"}],"wp:attachment":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media?parent=1092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/categories?post=1092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/tags?post=1092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}