[Khóa học sử dụng SQL server] - Bài 18: Group by| HowKteam
Вставка
- Опубліковано 8 лют 2025
- [Khóa học sử dụng SQL server] - Bài 18: Group by| HowKteam
Nếu các bạn thấy hay thì hãy đăng ký theo dõi kênh, like, share cho mọi người cùng tham gia nhé.
Muốn ủng hộ mình các bạn có thể nhấn vào quảng cáo hiện lên và load xong để mình được ít tiền duy trì nhé.
Cảm ơn mọi người.
Học thêm kiến thức hoặc tải tài liệu tại www.howkteam.com/
Luyện tập trắc nghiệm mỗi ngày tại kquiz.vn/
Bài trước:
[Khóa học sử dụng SQL server] - Bài 17: Truy vấn lồng| HowKteam
• [Khóa học sử dụng SQL ...
Bài sau:
[Khóa học sử dụng SQL server] - Bài 19: Group by - Having| HowKteam
• [Khóa học sử dụng SQL ...
Tập hợp khóa học lập trình cơ bản đến nâng cao.
Tham gia group để cập nhật thêm thông tin cũng như tham gia khóa học online miễn phí.
Group FB: goo.gl/8T2krI
Website: www.howkteam.com/
Danh sách phát: goo.gl/0LIji0
C++:
Lập trình C++: goo.gl/8RCMte
Bài toán kinh điển C++: goo.gl/7CszwZ
C#:
Lập trình C#: goo.gl/AhxyAI
Lập trình C# WinForms: goo.gl/dPbSm4
Lập trình ASP.NET MVC: goo.gl/riqrzP
Java:
Lập trình Java: goo.gl/VoDbbs
Lập trình Android: goo.gl/LyV3ZX
Game:
Lập trình Unity 3D: goo.gl/RcBi6c
Office:
Office Word 2016: goo.gl/GQUk5E
Office Excel 2016: goo.gl/N3qdKs
Office Power Point 2016: goo.gl/zegyVx
Products:
Game Caro C# Winforms: goo.gl/bMuXEC
Game Flappy Bird Unity 3D: goo.gl/K00l5y
Game bắn Zombies Unity 3D: goo.gl/HUjWlt
Game Doge Unity 3D: goo.gl/0pysFu
App lập lịch C# Winforms: goo.gl/xO0iX3
App từ điển nói C# Winforms: goo.gl/KgHNNn
App quản lý quán Cafe C# Winforms: goo.gl/FLZDDM
App key logger C# Winforms: goo.gl/qV93CV
Stream:
Kỹ thuật: goo.gl/tGtmwq
Kinh nghiệm: goo.gl/VsQjkc
Âm thanh:
Two Step From Hell Colors Of Love
fbl.me/TJB
/ thomas-bergersen-14790...
/ fourformusic
www.thomasberge...
Để ủng hộ Kteam các bạn xem bài viết tại website Howkteam.com và click quảng cáo để hỗ trợ team có kinh phí duy trì nhé!
www.howkteam.com/course/Su-dung-SQL-server/Group-By-trong-SQL-Server-1399
Nếu bạn thấy bổ ích, đừng quên chia sẻ để lan truyền GIÁO DỤC MIỄN PHÍ đến cộng đồng!
Cảm ơn bạn đã luôn đồng hành cùng Kteam
Cảm ơn a ạ. Xem nhiều video mà có video của a là giảng kỹ mà dễ hiểu nữa
"ghê chưa, ghê chưa" mỗi lần tới đây em thấy mắc cười :vv. Nhưng mà anh giảng dễ hiểu ạ, cảm ơn anh
"hổng xài hổng biết" =)) thầy Long dễ thương quá :))
Cảm ơn video bổ ích của nhóm ạ
1 cách của câu 3 ạ:
SELECT TOP 1 * FROM
(SELECT K.TENKHOA, SUM(GV.LUONG) AS TONGLUONG FROM KHOA AS K, GIAOVIEN AS GV, BOMON AS BM
WHERE GV.MABM = BM.MABM AND BM.MAKHOA = K.MAKHOA
GROUP BY K.TENKHOA
ORDER BY TONGLUONG DESC OFFSET 0 ROWS) T
Hay quá ! Dễ hiểu lắm anh !
câu 3 :
SELECT K.TENKHOA, SUM(GV.LUONG) AS LUONGMOI INTO TONGLUONG
FROM GIAOVIEN AS GV, BOMON AS BM, KHOA AS K
WHERE GV.MABM = BM.MABM AND BM.MAKHOA = K.MAKHOA GROUP BY K.TENKHOA
SELECT TENKHOA FROM TONGLUONG
WHERE LUONGMOI = (SELECT MAX(LUONGMOI) FROM TONGLUONG)
hoặc
SELECT K.TENKHOA, SUM(GV.LUONG) AS 'LUONGMOI1' INTO TONGLUONG1
FROM KHOA AS K, GIAOVIEN AS GV, BOMON AS BM
WHERE K.MAKHOA = BM.MAKHOA AND GV.MABM = BM.MABM
GROUP BY K.TENKHOA ORDER BY LUONGMOI1 DESC
SELECT TOP(1)TENKHOA FROM TONGLUONG1
Hay quá ạ
Câu lấy ra danh sách giáo viên có lương > lương trung bình của giáo viên hình như anh làm không đúng.
Lương trung bình là 2040. Như vậy chỉ có 5 giáo viên có lương lớn hơn lương trung bình này thôi.
select * from GIAOVIEN where giaovien.LUONG > (select AVG(GIAOVIEN.LUONG) from GIAOVIEN)
tks kteam, clips rất hay.
All clip very good!!!
Thanks
Cảm ơn Kteam
Xem Ông nhiều cái tự mò , tự biên tự diễn hài vãi chữa
- E xem cái video này cách day 3 năm trc, nhưng bh vẫn phải xem lại!! bh mới lại đc học tiếp :((
- Nhưng a K team, check xem cái mà ví dụ mở đầu, a bảo k dùng đc WHERE e cố thử dùng mà n vẫn ok nè! :v
-- XUAT RA DANH SACH TEN BO MON VA SO LUONG GIAO VIEN CUA BO MON DO
SELECT BM.TENBM, (SELECT COUNT(*) FROM dbo.GIAOVIEN AS GV
WHERE BM.MABM = GV.MABM) AS SL FROM dbo.BOMON AS BM
WHERE 1
thanks how k team ạ!!
em cảm ơn anh
Như này chuẩn khỏi chỉnh chưa nhỉ hehe ^^
---Xuất ra tên khoa có tổng số lương của GV trong khoa là lớn nhất:
----------------------------------------------------------------------------------
select K.TENKHOA, sum(GV.LUONG) as Salary
into LUONGKHOA
from dbo.KHOA as K, dbo.BOMON as BM, dbo.GIAOVIEN as GV
where K.MAKHOA = BM.MAKHOA and GV.MABM = BM.MABM
group by K.TENKHOA
GO
SELECT TOP(1) Salary, LUONGKHOA.TENKHOA FROM dbo.LUONGKHOA
ORDER BY Salary DESC, LUONGKHOA.TENKHOA
GO
cách của bạn có vấn đề là sẽ tạo ra 1 bảng không mong muốn là LUONGKHOA
rất bổ ích và dễ hiểu..:3
câu 3 của em ạ
SELECT TOP(1) KHOA.MAKHOA, KHOA.TENKHOA, SUM(LUONG) AS N'Tổng Lương' FROM KHOA, BOMON, GIAOVIEN
WHERE BOMON.MAKHOA = KHOA.MAKHOA AND
GIAOVIEN.MABM = BOMON.MABM
GROUP BY KHOA.MAKHOA , KHOA.TENKHOA
ORDER BY SUM(LUONG) DESC
" Hỏng sài hỏng Biết" 😍
Group by nhóm các hàng có cùng giá trị
Thấy thầy làm video lúc 6h sáng =))
Học a vừa dễ hiểu vừa kiểu bị buồn cười, học cuốn thật sự :))
sao mình không dùng luôn AVG mà dùng SUM/COUNT vậy ạ
hay quá
a cho e hỏi với ạ. E có bảng dữ liệu các vật tư như thép chằng hạn. HIện tại kho có 150 cây thép đến ngày 15.3.2022 kho nhập 50 cây thép thì e chỉ muốn hiện số tổng cây thép là 200 cây thì là thế nào ạ. E cảm ơn.
A cho e hỏi là mấy cái table đó mk lấy ở đâu để lm v ad
ĐÁP ÁN CÂU 3:
SELECT TOP(1) K.TENKHOA, SUM(GV.LUONG) AS N'TONG LUONG' FROM dbo.KHOA AS K, dbo.GIAOVIEN AS GV, dbo.BOMON AS BM
WHERE K.MAKHOA = BM.MAKHOA AND GV.MABM = BM.MABM
GROUP BY K.TENKHOA
:))
Bài 1:
select hoten,COUNT(*) as Tongnguoithan from GIAOVIEN as gv, NGUOITHAN as nt
where gv.magv=nt.MAGV
group by hoten
bài 2 :
select hoten,COUNT(*) as Tongsodetaidahoanthanh from GIAOVIEN as gv,THAMGIADT as tg
where gv.MAGV=tg.magv and KETQUA=N'Đạt'
group by HOTEN,ketqua
bài 3 :
SELECT tong.makhoa,max(tongluong) as maxluong
FROM
(
SELECT KH.MAKHOA,SUM(LUONG) as tongluong
FROM dbo.GIAOVIEN AS GV, dbo.BOMON AS BM,dbo.KHOA AS KH
WHERE GV.MABM=BM.MABM
AND BM.MAKHOA=KH.MAKHOA
GROUP BY KH.MAKHOA
) AS TONG
WHERE tongluong =
(
SELECT max(tongluong)
FROM
(
SELECT KH.MAKHOA,SUM(LUONG) as tongluong
FROM dbo.GIAOVIEN AS GV, dbo.BOMON AS BM,dbo.KHOA AS
KH
WHERE GV.MABM=BM.MABM
AND BM.MAKHOA=KH.MAKHOA
GROUP BY KH.MAKHOA
) AS TONG
)
group by makhoa
bài 1 nếu muốn xuất ra cả 10 giáo viên luôn thì sao bạn nhỉ ? những giao viên không có người thân thì count sẽ = 0
@@TienNguyen-ll3cu tạo thêm 1 bảng phụ cho GV ko có người thân, rồi xuất kết hợp cả 2 bảng là xong
Bài 3 sao phức tạp thế ạ
thầy ơi Lương trung bình giáo viên tính bằng hàm AVG đc ko ạ, sao thầy phải lấy sum / count ạ?
avg đc bạn, còn kia cũng đc nhé
.Mọi người cho em hỏi :Xuất ra tên giáo viên và số lượng đề tài đã hoàn thành mà giáo viên đó đã tham gia ,tức là xuất ra tên giáo viên và số lượng đề tài là mà kết là đạt đúng không ạ
=N'Đạt'
liệt kê ds bộ môn và số lượng bộ môn nếu ko dùng group by thì mình dùng truy vấn lồng đc ko ạ.
sao nó không hiện ra tất cả các BM có nhỉ, nó chỉ hiện BM có giáo viên thôi, mấy BM ko có gv dạy thì nó ko ra vại nhỉ.
@@thanhtam7749Khi bạn truy vấn GV.MABM = BM.MABM, thì BM.MABM nào mà không tồn tại GV.MABM tương ứng, đương nhiên nó sẽ không hiện ra rồi.
phút 16 xuất giáo viên có lương > lương trung bình bị sai ad ơi ,
SELECT * FROM dbo.GIAOVIEN
WHERE LUONG >
(SELECT AVG(Luong) FROM dbo.GIAOVIEN)
bài 3 mình làm thế này đc ko nhỉ
--3 xuất ra tên khoa có tổng số lương của giáo viên trong khoa lớn nhất
SELECT MAX(TONGLUONG.[1]) from
(SELECT SUM(gv.LUONG) AS '1' FROM dbo.BOMON AS bm, dbo.GIAOVIEN AS gv , dbo.KHOA AS KH
WHERE bm.MABM = gv.MABM AND bm.MAKHOA = kh.MAKHOA
GROUP BY kh.TENKHOA)AS TONGLUONG
bài này nó hơi quằn, khác với những bài trước là vừa làm anh chạy trước kết quả cho người xem thấy trước, rồi giải thích sao nó như vậy. Bài này thì anh giảng trước khi xuất kết quả nên nó hơi khó hiểu
vừa quay video + vừa render video, máy trâu quá ad ơi
máy đó đi đời rồi e ạ. H a đã có máy mới!
Lấy database mẫu ở đâu vậy ad
link này nha www.howkteam.vn/course/Su-dung-SQL-server/Group-By-trong-SQL-Server-1399
@@KTeam Admin cho mình xem kết quả câu 2 với ạ. Mình cảm ơn
@@CUONGDINHHD34 bây giờ có thể bạn k cần nhưng mình cứ gửi
SELECT GV.HOTEN, COUNT(*) AS N'SỐ LƯỢNG ĐỀ TÀI ĐÃ HOÀN THÀNH'
FROM GIAOVIEN AS GV, THAMGIADT AS TG
WHERE GV.MAGV = TG.MAGV AND TG.KETQUA = N'Đạt'
GROUP BY GV.HOTEN, GV.MAGV
xin ad cái code full của bài này !!!!
AGGREGATE FUNCTION
Đáp án câu 3:
SELECT c.MAKHOA,a.TENKHOA,SUM(b.LUONG) AS N'Tổng số lương của khoa'
INTO TONGLUONGKHOA
FROM dbo.KHOA AS a
JOIN dbo.BOMON AS c ON a.MAKHOA = c.MAKHOA
JOIN dbo.GIAOVIEN AS b ON b.MABM = c.MABM
GROUP BY c.MAKHOA,a.TENKHOA
ORDER BY SUM(b.LUONG) DESC
GO
SELECT TOP (1)MAKHOA,TENKHOA FROM dbo.TONGLUONGKHOA
GO
mn ai có tài liệu cơ sở dữ liệu e xin dc k ạ
xuất ra giáo viên mà đề tài họ tham gia là đạt:
select HOTEN, GV.MAGV , count(*) from THAMGIADT as TGDT, GIAOVIEN as GV
where GV.MAGV = TGDT.MAGV and TGDT.KETQUA like N'Đạt'
group by HOTEN, GV.MAGV
Câu lương trung bình hình như không đúng ạ:
SELECT * FROM GIAOVIEN
WHERE LUONG >
(SELECT AVG(LUONG) FROM GIAOVIEN)
Như này kết quả chỉ ra 5 giáo viên thôi ạ, em tính bằng máy tính thì lương trung bình cũng là 2040, nên chỉ có 5 giáo viên thôi ạ
Em thử chạy theo cách của anh thì trên máy em cũng hiện ra 5 giáo viên thôi ạ:
SELECT * FROM GIAOVIEN
WHERE LUONG >
(SELECT SUM (LUONG) FROM GIAOVIEN)/(SELECT COUNT (*) FROM GIAOVIEN )
5 GV thôi
Mình cũng ra 5 kq như bạn theo 2 TH
SELECT K.TENKHOA,SUM(GV.LUONG) AS TLUONG INTO NEWDS FROM KHOA AS K, GIAOVIEN AS GV,BOMON AS BM
WHERE GV.MABM = BM.MABM AND BM.MAKHOA = K.MAKHOA
GROUP BY K.TENKHOA
ORDER BY TLUONG DESC
SELECT TOP(1) * FROM NEWDS
thank bạn
cho mình hỏi mình cũng làm như bạn xắp xếp từ lớn xuống bé nhưng cứa dùng lệnh chọn top 1 nó lại chọn giá trị bé nhất
Xuất ra tên giáo viên và số lượng công việc giáo viên đó làm
SELECT HOTEN N'TÊN GIÁO VIÊN', COUNT(*) AS N'SỐ CÔNG VIỆC'
FROM dbo.GIAOVIEN AS GV, dbo.CONGVIEC AS CV, dbo.DETAI AS DT
WHERE DT.GVCNDT = GV.MAGV AND DT.MADT = CV.MADT
GROUP BY GV.MAGV, GV.HOTEN
thamgiadt dau :))
Đáp án cho 3 câu bài tập ở cuối video: 😁
USE HowKteam
GO
--Xuất ra tên GV và số lượng người thân của GV đó
SELECT HOTEN, COUNT(*) AS SOLUONGNT FROM dbo.GIAOVIEN AS GV, dbo.NGUOITHAN AS NT
WHERE GV.MAGV = NT.MAGV
GROUP BY HOTEN
--Xuất ra tên GV và số lượng đề tài đã hoàn thành mà GV đó tham gia
SELECT HOTEN, COUNT(*) FROM dbo.GIAOVIEN, dbo.THAMGIADT, dbo.DETAI
WHERE GIAOVIEN.MAGV = THAMGIADT.MAGV
AND THAMGIADT.MADT = DETAI.MADT
GROUP BY HOTEN
GO
--Xuất ra tên khoa có tổng số lượng của giáo viên trong là lớn nhất
SELECT TENKHOA, COUNT(*) AS SL FROM dbo.KHOA, dbo.BOMON, dbo.GIAOVIEN
WHERE GIAOVIEN.MABM = BOMON.MABM
AND BOMON.MAKHOA = KHOA.MAKHOA
GROUP BY TENKHOA
ORDER BY SL DESC OFFSET 0 ROWS FETCH FIRST 1 ROWS ONLY
GO
bạn có thể tham khảo 1 số cách mở cửa sổ CMD tại đây nha
howkteam.vn/course/note-tip-trick-python/cac-cach-mo-cua-so-cmd-thong-dung-tren-windows-3992
câu giáo viên và số công việc mọi người xem giúp mình xem đúng không ạ
select gv.HOTEN,b.socongviec from dbo.GIAOVIEN as gv,dbo.THAMGIADT as tdt ,(select madt,count(*) as socongviec from dbo.CONGVIEC
group by MADT ) as b
where gv.MAGV=tdt.MAGV and tdt.MADT=b.MADT
group by gv.HOTEN,b.socongviec
cau 3:
SELECT TOP 1 TENKHOA, sum(LUONG) sl FROM dbo.GIAOVIEN, dbo.BOMON, dbo.KHOA
WHERE GIAOVIEN.MABM = BOMON.MABM AND BOMON.MAKHOA = KHOA.MAKHOA
GROUP BY TENKHOA
ORDER BY sl DESC
Cau 3:
select * from
(
select KHOA.TENKHOA, count(GIAOVIEN.MAGV) as SL
from dbo.GIAOVIEN join dbo.BOMON
on GIAOVIEN.MABM = BOMON.MABM
join dbo.KHOA on BOMON.MAKHOA=KHOA.MAKHOA
group by KHOA.TENKHOA
order by SL desc offset 0 rows fetch first 1 rows only
) as T