Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Group by trong SQL Server được dùng để làm gì? Sau đây là mọi điều bạn cần biết về Group by SQL Server.
SQL Server là kiến thức mà mọi lập trình viên đều cần biết. Nó không phải ngôn ngữ lập trình. Nó là phương tiện giúp bạn quản lý dữ liệu hiệu quả. Mà code, dữ liệu là gốc của lập trình vì thế quản lý chúng rất quan trọng.
Học cách sử dụng SQL Server không khó. Hãy bắt đầu từ những kiến thức cơ bản nhất được giới thiệu trên Quantrimang.com. Ở bài viết này, chúng ta hãy cùng nhau tìm hiểu về lệnh Group by là gì nhé!
Lệnh Group by trong SQL Server được dùng để sắp xếp dữ liệu giống hệt nhau theo các nhóm với sự trợ giúp của một số hàm khác. Ví dụ, nếu một cột cụ thể có cùng giá trị với các hàng khác nhau, thì nó sẽ sắp xếp những hàng đó vào một nhóm.
Đặc điểm nổi bật của Group by trong SQL Server
Cú pháp:
SELECT column1, column2,...columnN FROM table_name [WHERE] [GROUP BY column1, column2...columnN] [HAVING] [ORDER BY]
Mệnh đề SELECT có thể bao gồm cột được dùng với SQL GROUP BY. Vì thế, để bao gồm các cột khác trong hàm GROUP BY, dùng các hàm tổng hợp như COUNT(), MAX(), MIN(), SUM(), AVG() với những cột đó.
Đặc điểm nổi bật của GROUP BY trong SQL:
Để các bạn dễ theo dõi cách sử dụng GROUP BY trong SQL Server và tiện làm ví dụ, chúng ta sẽ sử dụng bảng dữ liệu dưới đây trong toàn bộ bài viết.
Bảng có tên Quantrimang.com, có 4 cột là IDChuyenmuc, Muccon, Chuyenmuclon, Sobai và 6 hàng như sau:
+------------+----------+-------------+-------+ |IDChuyenmuc | Muccon |Chuyenmuclon | Sobai | +------------+----------+-------------+-------+ | 1 |SQL Server|Lap trinh | 101 | | 2 |Facebook |Mang xa hoi | 152 | | 3 |Python |Lap trinh | 101 | | 4 |JavaScript|Lap trinh | 122 | | 5 |Chrome |Web | 94 | | 6 |Instagram |Mang xa hoi | 165 | +------------+----------+-------------+-------+
SELECT
bieu_thuc1, bieu_thuc2,... bieu_thuc_n,
ham_tong_hop (bieu_thuc)
FROM
ten_bang
[WHERE dieukien]
GROUP BY
bieu_thuc1,
bieu_thuc2,...;
Tên biến hoặc giá trị biến:
SELECT Chuyenmuclon, SUM(Sobai) AS "Tong" FROM [Quantrimang.com] GROUP BY Chuyenmuclon;
Ví dụ này dùng hàm tính tổng SUM để trả về tên Chuyenmuclon và tổng số bài viết (Sobai) (theo tên chuyên mục lớn).
Vì bạn đưa ra 1 cột (Chuyenmuclon) trong lệnh SELECT và không nằm trong hàm SUM nên sẽ phải dùng mệnh đề GROUP BY.
Khi đó ta có bảng kết quả trả về như sau:
+--------------+------+ | Chuyenmuclon | Tong | +--------------+------+ |Lap trinh | 324 | |Mang xa hoi | 317 | |Web | 94 | +--------------+------+
SELECT COUNT(Chuyenmuclon), Chuyenmuclon FROM [Quantrimang.com] WHERE Chuyenmuclon = 'Lap trinh' GROUP BY Chuyenmuclon;
Ở ví dụ này, hàm COUNT sẽ trả về số lượng Chuyenmuccon của Chuyenmuclon Lap trinh:
+------+--------------+ | | Chuyenmuclon | +------+--------------+ | 3 | Lap trinh | +------+--------------+
Nếu không muốn lấy tên cột mà chỉ cần trả về số lượng mục con, bạn chạy lệnh sau:
SELECT COUNT(Chuyenmuclon) FROM [Quantrimang.com] WHERE Chuyenmuclon = 'Lap trinh' GROUP BY Chuyenmuclon;
Kết quả trả về sẽ chỉ có số 3.
SELECT Chuyenmuclon, MIN(Sobai) AS 'So luong it nhat' FROM [Quantrimang.com] GROUP BY Chuyenmuclon;
Mệnh đề GROUP BY dùng với hàm MIN ở trên sẽ trả về Chuyenmuclon và số lượng bài ít nhất của mục lớn đó.

SELECT Chuyenmuclon, MAX(Sobai) AS 'So bai cao nhat' FROM [Quantrimang.com] GROUP BY Chuyenmuclon;
Ví dụ cuối cùng này trả về tên của Chuyenmuclon và số bài cao nhất của chuyên mục.

Nếu đang băn khoăn tự hỏi làm thế nào lọc kết quả sau khi nhóm, mệnh đề HAVING sẽ giúp bạn giải quyết vấn đề này.
SELECT r.name, COUNT(*) AS albums FROM albums l, artists r WHERE artist_id=r.id GROUP BY artist_id HAVING albums > 1;
Lưu ý, mệnh đề HAVING theo sau GROUP BY. Mặt khác, về cơ bản, đó là sự thay thế đơn giản cho WHERE với HAVING. Kết quả:
+------------+--------+ | name | albums | +------------+--------+ | Pink Floyd | 2 | | Adele | 2 | +------------+--------+
Bạn vẫn có thể dùng điều kiện WHERE để lọc kết quả trước khi nhóm. Nó sẽ hoạt động cùng với mệnh đề HAVING để lọc sau khi nhóm:
SELECT r.name, COUNT(*) AS albums FROM albums l, artists r WHERE artist_id=r.id AND release_year > 1990 GROUP BY artist_id HAVING albums > 1;
Kết quả: Chỉ một nghệ sĩ trong cơ sở dữ liệu đã phát hành nhiều hơn 1 album sau năm 1990.
+-------+--------+ | name | albums | +-------+--------+ | Adele | 2 | +-------+--------+
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Hướng dẫn giải phóng bộ nhớ lưu trữ ChatGPT
TOP công cụ AI đáng thử nhất trong năm
TOP Claude Connector giúp tăng năng suất làm việc
Thơ về tháng 10 hay, lãng mạn và tâm trạng nhất
TOP công cụ AI hỗ trợ lập trình tốt nhất
TOP trang web chia sẻ torrent phổ biến nhất
Cách xem live stream giải đua xe F1
Tại sao agent đưa ra phản hồi kỳ lạ trong Microsoft Copilot Studio?
Hướng dẫn xem lại thói quen sử dụng Claude AI
TOP Claude Connector cho quảng cáo và marketing
Webhook tools: Kết nối trợ lý của bạn với dữ liệu và hệ thống bên ngoài trong ElevenAgents
Cách gỡ box Hoàn thành nhiều việc hơn với AI khỏi New Tab Chrome
Cách thêm tài khoản vào plugin Google Calendar trên ChatGPT
TOP công cụ quản lý prompt AI tốt nhất
Cách áp dụng feedback video với Claude hoặc ChatGPT, không cần chỉnh sửa lại toàn bộ
Hướng dẫn tìm kiếm trò chuyện trên Gemini
8 công cụ viết AI tốt nhất hiện nay
Cách gỡ Gemini khỏi thanh tìm kiếm trong Google Photos
Quản lý tài liệu trong kho kiến thức ElevenAgents
Generative Orchestration trong Copilot Studio: Cách agent đưa ra quyết định
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
6 cách mở Computer/System Properties trong Windows 10
Cách sửa lỗi There Are Currently No Power Options Available Windows
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10