COUNT(*) va COUNT(ustun), SUM, AVG, MIN, MAX, NULL qoidasi, AVG va butun son tuzog'i
9-sinfBusiness Intelligence6-hafta · 16-darsKo'p qatordan bitta natija
COUNT(*) va COUNT(ustun)
AVG va butun son
NULL bilan solishtirish qaysi yozuvda to'g'ri?
IS NULL yoki IS NOT NULL bilan tekshiriladi.Ko'p qatordan bitta natija
SELECT COUNT(*) AS MahsulotSoni,
SUM(Soni) AS JamiDona,
AVG(Narx) AS OrtachaNarx,
MIN(Narx) AS EngArzon,
MAX(Narx) AS EngQimmat
FROM Mahsulotlar;
-- 6 | 68 | 2158333.33 | 80000 | 7500000
SELECT COUNT(*) AS AksessuarSoni
FROM Mahsulotlar
WHERE Kategoriya = N'Aksessuar';
-- 3
WHERE avval qatorlarni filtrlaydi, aggregatsiya esa faqat qolgan qatorlarni hisoblaydi.SUM(Soni) nimani qaytaradi?
SUM — yig'indi.COUNT(*) va COUNT(ustun)
CREATE TABLE Sotuvlar (
SotuvID INT PRIMARY KEY,
Sana DATE,
Shahar NVARCHAR(20),
Kategoriya NVARCHAR(30),
Summa DECIMAL(12,2),
Miqdor INT,
Chegirma DECIMAL(12,2) NULL
);
INSERT INTO Sotuvlar VALUES
(1, '2024-03-01', N'Toshkent', N'Aksessuar', 160000, 2, 16000),
(2, '2024-03-01', N'Samarqand', N'Kompyuter', 7500000, 1, NULL),
(3, '2024-03-02', N'Toshkent', N'Ekran', 1900000, 1, 190000),
(4, '2024-03-02', N'Buxoro', N'Aksessuar', 80000, 1, NULL),
(5, '2024-03-03', N'Samarqand', N'Aksessuar', 240000, 2, 24000),
(6, '2024-03-03', N'Toshkent', N'Kompyuter', 3200000, 1, NULL),
(7, '2024-03-04', N'Buxoro', N'Kompyuter', 3200000, 1, 320000),
(8, '2024-03-04', N'Toshkent', N'Aksessuar', 120000, 1, NULL),
(9, '2024-03-05', N'Samarqand', N'Ekran', 1900000, 1, NULL),
(10, '2024-03-05', N'Buxoro', N'Aksessuar', 80000, 1, 8000);
SELECT COUNT(*) AS Hammasi, -- 10
COUNT(Chegirma) AS ChegirmaBor, -- 5
SUM(Chegirma) AS JamiChegirma, -- 558000
AVG(Chegirma) AS OrtachaChegirma -- 111600
FROM Sotuvlar;
10 qatorning 5 tasida Chegirma NULL. COUNT(Chegirma) nechta?
AVG va butun son
SELECT AVG(Miqdor) AS ButunOrtacha, -- 1
AVG(CAST(Miqdor AS DECIMAL(10,2))) AS HaqiqiyOrtacha -- 1.200000
FROM Sotuvlar;
SELECT COUNT(*) AS Soni, -- 4
SUM(Summa) AS Jami -- 5380000
FROM Sotuvlar
WHERE Shahar = N'Toshkent';
SELECT MIN(Sana) AS Birinchi, MAX(Sana) AS Oxirgi
FROM Sotuvlar; -- 2024-03-01 | 2024-03-05
MIN/MAX ham ishlaydi, SUM va AVG esa faqat sonli ustunlarda.SQL Server'da INT ustunida AVG natijasi qanday bo'ladi?
CAST(... AS DECIMAL) ishlating.Ustun bo'yicha sanash uchun COUNT(ustun).
Ko'p qatorni bitta qiymatga jamlash
Qatorlar yoki qiymatlar soni
O'rtacha qiymat
Natija ustuniga berilgan nom
FROM Sotuvlar.
SUM, AVG, COUNT...
AS bilan.
| Funksiya | Nima qiladi | Misol natijasi |
|---|---|---|
COUNT(*) | Qatorlar soni | 10 |
SUM(Summa) | Yig'indi | 18 380 000 |
AVG(Summa) | O'rtacha | 1 838 000 |
MIN(Summa) | Eng kichik | 80 000 |
MAX(Summa) | Eng katta | 7 500 000 |
Sotuvlar jadvali bo'yicha
Sotuvlar jadvalidagi barcha sotuvlar sonini COUNT(*) bilan toping.SUM(Summa) va AVG(Summa) ni bitta so'rovda chiqaring, ustunlarga nom bering.WHERE bilan faqat Buxoro sotuvlari yig'indisini hisoblang.
SELECT COUNT(*) AS ChegirmaBor
FROM Sotuvlar;
SELECT COUNT(Chegirma) AS ChegirmaBor
FROM Sotuvlar;
COUNT(*) va COUNT(ustun) har doim bir xil emas.
Ko'p qator → bitta qiymat.
COUNT(*) dan boshqalar NULL ni o'tkazadi.
INT da butun natija; CAST ishlating.
Uyga vazifa: Mahsulotlar va Sotuvlar bo'yicha aggregatsiya so'rovlari.
Guruhlash mexanizmi
6-hafta · 17-dars