<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Lệnh GROUP BY trong SQL</title>
<meta name="description" content="Lệnh GROUP BY trong SQL - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;lenh-group-by-trong-sql-9167.html">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Lệnh GROUP BY trong SQL">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;lenh-group-by-trong-sql-9167.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/lenh-group-by-trong-sql-9167.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/lenh-group-by-trong-sql-9167.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Lệnh GROUP BY trong SQL</h1>
		<ul class="list-inline">
			<li>Thứ sáu - 11/10/2024 23:16</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Lệnh GROUP BY trong SQL" src="https://st.quantrimang.com/photos/image/2023/06/23/group-by-sql.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;"><strong>Group by trong SQL</strong>&nbsp;được sử dụng rất nhiều trong lập trình. Vậy khi nào dùng&nbsp;<strong>Group by trong SQL</strong>? Hãy cùng Quantrimang.com tìm hiểu nhé!</p>

<p style="text-align: justify;">Sức mạnh của cơ sở dữ liệu quan hệ đến từ bộ lọc dữ liệu và kết nối các bảng lại với nhau. Đây là lí do tại sao lập trình viên thường xét tới những mối quan hệ này trước tiên. Thế nhưng, các hệ thống database hiện đại cung cấp kỹ năng đáng giá khác: nhóm.</p>

<p style="text-align: justify;">Nhóm cho phép bạn truy xuất thông tin tóm tắt từ database. Nó cho phép bạn kết hợp các kết quả tạo dữ liệu thống kê hữu ích. Nhóm giúp bạn viết code nhanh hơn cho các trường hợp phổ biến chẳng hạn như tính trung bình của danh sách số liệu. Nó có thể khiến các hệ thống hoạt động hiệu quả hơn.</p>

<p style="text-align: justify;">Vì thế, đừng bỏ qua groupby trong SQL. Nó cực kỳ hữu ích khi lập trình và quản lý cơ sở dữ liệu quan hệ. Bạn đã biết cách dùng Group by trong SQL chưa? Nếu chưa, bài viết dưới đây sẽ cung cấp cho bạn tất cả thông tin cần biết về lệnh group by trong SQL.</p>

<p style="text-align: justify;">Lệnh GROUP BY trong SQL được dùng để sắp xếp dữ liệu đồng nhất theo nhóm với sự trợ giúp của một số chức năng. Ví dụ, nếu một cột nào đó có cùng giá trị ở các hàng khác nhau, sau đó nó sẽ sắp xếp những hàng đó vào một nhóm.</p>

<p style="text-align: justify;">Đặc điểm nổi bật của lệnh GROUP BY trong SQL:</p>

<ul>
	<li style="text-align: justify;">Mệnh đề GROUP BY được dùng với lệnh SELECT.</li>
	<li style="text-align: justify;">Trong truy vấn, GROUP BY được đặt sau mệnh đề WHERE và trước Having, ORDER BY (nếu có).</li>
	<li style="text-align: justify;">Đặt điều kiện trong mệnh đề having.</li>
</ul>

<p style="text-align: justify;">Trong SQL,&nbsp;<strong>mệnh đề GROUP BY</strong>&nbsp;được sử dụng kết hợp với&nbsp;lệnh SELECT&nbsp;để sắp xếp các hàng dữ liệu có cùng điều kiện giá trị nào đó vào trong các nhóm. Bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng mệnh đề GROUP BY trong SQL với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt câu lệnh tốt hơn.</p>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">GROUP BY đứng sau&nbsp;mệnh đề WHERE&nbsp;trong câu lệnh SELECT và đứng trước&nbsp;mệnh đề ORDER BY. Mệnh đề GROUP BY thường được sử dụng với các hàng tổng hợp như COUNT(), MAX(), MIN(), SUM(), AVG() để nhóm các kết quả theo giá trị 1 hoặc nhiều cột.</p>

<h2 style="text-align: justify;">Cú pháp lệnh GROUP BY trong SQL</h2>

<p style="text-align: justify;">Cú pháp cơ bản của GROUP BY trong SQL như sau:</p>

<pre id="pre0" style="text-align: justify;">
SELECT cot1, cot2
FROM ten_bang
WHERE &#91; dieu_kien &#93;
GROUP BY cot1, cot2
ORDER BY cot1, cot2</pre>

<h2 style="text-align: justify;">Ví dụ về GROUP BY trong SQL</h2>

<p style="text-align: justify;">Giả sử bảng&nbsp;<em>NHANVIEN</em>&nbsp;có các bản ghi như sau:</p>

<pre id="pre1">
<code>+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+</code></pre>

<p style="text-align: justify;"><strong>Ví dụ 1:</strong></p>

<p style="text-align: justify;">Nếu bạn muốn biết tổng số tiền lương của mỗi nhân viên, thì truy vấn GROUP BY sẽ như sau:</p>

<pre id="pre2" style="text-align: justify;">
SELECT TEN, SUM(LUONG)
FROM NHANVIEN
GROUP BY TEN;</pre>

<p style="text-align: justify;">Kết quả trả về là:</p>

<pre id="pre3">
<code>+----------+----------+
| TEN      |SUM(LUONG)|
+----------+----------+
| Cao      |  4500.00 |
| Huy      |  8500.00 |
| Lam      | 10000.00 |
| Loan     |  1500.00 |
| Manh     |  6500.00 |
| Nga      |  2000.00 |
| Thanh    |  2000.00 |
+----------+----------+</code></pre>

<p style="text-align: justify;">Bây giờ, chúng ta có bảng sau với bản sao các tên trùng lặp:</p>

<pre id="pre4">
<code>+----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Thanh    |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Nga      |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+</code></pre>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;"><strong>Ví dụ 2:</strong></p>

<p style="text-align: justify;">Nếu bạn muốn biết tổng số tiền lương của mỗi nhân viên, thì truy vấn GROUP BY hiện tại sẽ như sau:</p>

<pre id="pre5" style="text-align: justify;">
SELECT TEN, SUM(LUONG)
FROM NHANVIEN
GROUP BY TEN;</pre>

<p style="text-align: justify;">Kết quả trả về là:</p>

<pre id="pre6">
<code>+---------+-------------+
| TEN     | SUM(LUONG)  |
+---------+-------------+
| Huy     |     8500.00 |
| Nga     |     8500.00 |
| Cao     |     4500.00 |
| Lam     |    10000.00 |
| Thanh   |     3500.00 |
+---------+-------------+</code></pre>

<p style="text-align: justify;"><strong>Ví dụ 3:</strong></p>

<p style="text-align: justify;">Từ bảng NHANVIEN ban đầu, bạn cần đếm xem từng tỉnh thành có bao nhiêu nhân viên, câu lệnh sẽ như sau:</p>

<pre id="pre7">
<code>SELECT COUNT(TEN), DIACHI
FROM NHANVIEN
GROUP BY DIACHI;</code></pre>

<p style="text-align: justify;">Sau khi chạy truy vấn trên, bạn sẽ có bảng kết quả như sau:</p>

<pre id="pre8">
<code>+-----------+-----------+
| COUNT(TEN)| DIACHI    |
+-----------+-----------+
| 1         | Haiphong  |
| 1         | Hanam     |
| 2         | Hanoi     |
| 1         | Hatinh    |
| 1         | HCM       |
| 1         | Hue       |
+-----------+-----------+</code></pre>

<p style="text-align: justify;"><strong>Ví dụ 4:</strong></p>

<p style="text-align: justify;">Liệt kê số lượng nhân viên theo mỗi địa chỉ và sắp xếp số lượng đếm được từ cao xuống thấp:</p>

<pre id="pre9">
<code>SELECT COUNT(TEN), DIACHI
FROM NHANVIEN
GROUP BY DIACHI
ORDER BY COUNT(TEN) DESC;</code></pre>

<p style="text-align: justify;">Ta sẽ có bảng kết quả như sau:</p>

<pre id="pre10">
<code>+-----------+-----------+ 
| COUNT(TEN)| DIACHI    | 
+-----------+-----------+ 
| 2         | Hanoi     | 
| 1         | Haiphong  |
| 1         | Hanam     |
| 1         | Hatinh    | 
| 1         | HCM       |
| 1         | Hue       |
+-----------+-----------+</code></pre>

<h2 style="text-align: justify;">Mệnh đề Having trong GROUP BY</h2>

<p style="text-align: justify;">Bạn có thể dùng Having để đặt các điều kiện quyết định nhóm nào sẽ là một phần của kết quả cuối cùng. Ngoài ra, nhớ rằng, bạn không thể dùng hàm tổng hợp như SUM(), COUNT()… với mệnh đề WHERE. Do đó, bạn phải dùng mệnh đề HAVING nếu muốn sử dụng bất kỳ hàm kể trên trong điều kiện.</p>

<p style="text-align: justify;">Cú pháp:</p>

<pre id="pre11" style="text-align: justify;">
SELECT column1, function_name(column2)

FROM table_name

WHERE condition

GROUP BY column1, column2

HAVING condition

ORDER BY column1, column2;</pre>

<p style="text-align: justify;">Ví dụ:</p>

<pre id="pre12" style="text-align: justify;">
SELECT NAME, SUM(sal) FROM Emp
GROUP BY name
HAVING SUM(sal)&gt;3000;</pre>

<p style="text-align: justify;">Kết quả:</p>

<p style="text-align: justify;"><img alt="Ví dụ dùng GROUP By trong SQL " data-i="0" data-src="https://st.quantrimang.com/photos/image/2023/06/23/group-by-sql.jpg" data-was-processed="true" height="201" src="https://st.quantrimang.com/photos/image/2023/06/23/group-by-sql.jpg" width="650" /></p>

<p style="text-align: justify;">Trong phần tiếp theo, chúng ta sẽ tìm hiểu về từ khóa DISTINCT, các bạn nhớ theo dõi nhé.</p>

<div style="text-align: justify;">&nbsp;</div>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/lenh-group-by-trong-sql-9167.html" title="Lệnh GROUP BY trong SQL">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/lenh-group-by-trong-sql-9167.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>