170 likes | 253 Views
GROUP BY Statement. The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns. SQL GROUP BY Syntax. SELECT column_name , aggregate_function ( column_name ) FROM table_name WHERE column_name operator value GROUP BY column_name.
E N D
GROUP BY Statement The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns.
SQL GROUP BY Syntax SELECTcolumn_name, aggregate_function(column_name)FROMtable_nameWHEREcolumn_name operator valueGROUP BY column_name
Sửdụngcáchàm COUNT, SUM, MIN, MAX, AVG trêntừngnhómnhỏ: mệnhđề GROUP BY • Chiacácdòngthànhcácnhómnhỏdựatrêntậpthuộctínhchianhóm. • Thựchiệncácphéptoántrênnhómnhư: Count (thựchiệnphépđếm), Sum (tínhtổng), Min(lấygiátrịnhỏnhất), Max(lấygiátrịlớnnhất), AVG (lấygiátrịtrungbình).
S BANG VD Câu SQL: Select Ten, count(So luong) As SL From VD Group by Ten Ten SL A 2 2 B 5 C D 3 Chiacácdòngthànhcácnhómdựatrêntậpthuộctínhchianhóm
SQL – MỆNH ĐỀ HAVING • Lọckếtquảtheođiềukiện, saukhiđãgomnhóm • Điềukiệncủa HAVING làđiềukiệnvềcáchàmtínhtoántrênnhóm (Count, Sum, Min, Max, AVG) vàcácthuộctínhtrongdanhsách GROUP BY.
SELECTcolumn_name, aggregate_function(column_name)FROM table_nameWHEREcolumn_name operator valueGROUP BYcolumn_nameHAVINGaggregate_function(column_name) operator value
BANG VD Câu SQL: Select Ten, count(So luong)As SL From VD Group by Ten Having count(So luong) >2 Ten SL Ten SL A 2 C 5 2 B 3 D 5 C D 3
Câutruyvấntổngquát:SELECT[DISTINCT] danh_sách_cột | hàm FROMdanhsáchcácquanhệ (hay bảng, table) [WHEREđiều_kiện] [GROUP BYdanh_sách_cột_gom_nhóm] [HAVINGđiều_kiện_trên_nhóm] [ORDER BYcột1 ASC | DESC, cột2 ASC | DESC,… ]
Cáccâulệnhlồngnhau • Làcáclệnh Select trongđócóchứacáclệnhSlectkhác • Cáccâulệnhbêntrongnằmsaumệnhđề where hoặc Having củacâulệnh Select bênngoài.
Xétbảng NHANVIEN trên Vídụ: ĐưaraHoTen, TenDV, Congviec, Luongcủanhữngngườicólươnglớnhớnlươngtrungbìnhcủanhânviên? -> Tìmnhânviênthỏayêucầu Select HoTen, TenDV, Congviec , Luong From NHANVIEN Where Luong> (Select AVG (Luong) From NHANVIEN)
Vídụ 2 Vídụ: ĐưaraHoTen, TenDV, Congviec, Luongcủanhữngngườicólươngthấpnhấttrpngtừngđơnvị. SELECTHoten, MaDV, Luong FROM NHANVIEN WHERE (MaDV, Luong) IN (SelectMaDV, Min(Luong) From NHANVIEN Group by MaDV)
Vídụ 3 ĐưaraHoTen, TenDV, Congviec, Luongcủanhữngngườicólươnglớnnhấtcủađơnvịcómãlà 0002 SELECTHoten, Luong FROM NHANVIEN WHERELuong> ALL(SelectLuong From NHANVIEN WhereMaDV ='0002')
SELECT MaNV, Hoten, Luong FROM NHANVIEN WHERE Luong IN (SELECT Min(Luong) FROM NHANVIEN GROUP BY MaDV)