<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:分組查詢(GROUP BY)會用不?

          共 4636字,需瀏覽 10分鐘

           ·

          2024-06-14 10:51


          在MySQL中,GROUP BY是一個SQL語句中的子句,用于將查詢結(jié)果集中的行根據(jù)一個或多個列的值進(jìn)行分組。分組的目的是將具有相同值的行歸為一組,這樣就可以對每個組應(yīng)用聚合函數(shù)(如SUM, AVG, MAX, MIN, COUNT等)來進(jìn)行計(jì)算,從而實(shí)現(xiàn)對各組數(shù)據(jù)的統(tǒng)計(jì)分析。


          在MySQL中,分組查詢(GROUP BY)是一種非常實(shí)用的功能,允許你根據(jù)一個或多個列將查詢結(jié)果集劃分成多個組,然后可以對每個組應(yīng)用聚合函數(shù)(如SUM, AVG, MAX, MIN, COUNT等)進(jìn)行計(jì)算。下面通過一個具體案例來說明分組查詢的使用方法。

          具體案例一:

          假設(shè)我們有一個名為employees的表,存儲了公司的員工信息,包括employee_id, name, department_id, salary等字段?,F(xiàn)在我們想統(tǒng)計(jì)每個部門(department_id)的員工人數(shù)和平均薪資。

          SQL查詢示例

          SELECT department_id, COUNT(employee_id) AS total_employees, AVG(salary) AS average_salary
          FROM employees
          GROUP BY department_id;

          解釋

          1. SELECT - 首先,我們指定了想要從查詢中獲取的列。這里我們選擇了department_id(分組依據(jù)),并使用聚合函數(shù)COUNT(employee_id)來計(jì)算每個部門的員工總數(shù),以及AVG(salary)來計(jì)算每個部門的平均薪資。

          2. FROM employees - 指定查詢的表名為employees。

          3. GROUP BY department_id - 這是分組查詢的關(guān)鍵部分,它指示MySQL根據(jù)department_id字段的值對結(jié)果集進(jìn)行分組。這意味著每一組內(nèi)的記錄都有相同的department_id值。

          4. AS關(guān)鍵字 - 用于給聚合函數(shù)的計(jì)算結(jié)果起別名,使得輸出結(jié)果更易讀。例如,COUNT(employee_id) AS total_employees將計(jì)數(shù)結(jié)果顯示為total_employees。

          預(yù)期結(jié)果

          假設(shè)employees表中的數(shù)據(jù)如下:

          employee_id name department_id salary
          1 Alice 10 5000
          2 Bob 10 6000
          3 Carol 20 5500
          4 David 20 7000
          5 Eve 30 4500

          執(zhí)行上面的SQL查詢后,預(yù)期的結(jié)果可能是:

          department_id total_employees average_salary
          10 2 5500
          20 2 6250
          30 1 4500

          這個結(jié)果告訴我們,部門10有2名員工,平均薪資為5500元;部門20也是2名員工,平均薪資略高,為6250元;部門30則只有1名員工,薪資為4500元。通過這個案例,我們可以看到分組查詢在數(shù)據(jù)分析和報(bào)表生成中的強(qiáng)大作用。


          具體案例二:

          當(dāng)然,讓我們通過一個具體的案例來進(jìn)一步闡述MySQL中GROUP BY子句的使用。設(shè)想有一個銷售記錄表sales_records,包含以下字段:

          • product_id(產(chǎn)品ID)
          • product_name(產(chǎn)品名稱)
          • sale_date(銷售日期)
          • quantity_sold(銷售數(shù)量)

          我們的目標(biāo)是統(tǒng)計(jì)每個月每個產(chǎn)品的總銷售數(shù)量。

          SQL查詢示例

          SELECT 
              YEAR(sale_date) AS SaleYear, 
              MONTH(sale_date) AS SaleMonth, 
              product_id, 
              product_name, 
              SUM(quantity_sold) AS TotalQuantitySold
          FROM 
              sales_records
          GROUP BY 
              YEAR(sale_date), 
              MONTH(sale_date), 
              product_id;

          解釋

          1. SELECT - 我們選取了年份(通過YEAR(sale_date))、月份(通過MONTH(sale_date))、產(chǎn)品ID(product_id)、產(chǎn)品名稱(product_name),以及每個組的銷售總量(通過SUM(quantity_sold))。

          2. FROM sales_records - 指定查詢的數(shù)據(jù)來源是sales_records表。

          3. GROUP BY - 使用年份、月份和產(chǎn)品ID作為分組依據(jù)。這意味著結(jié)果將按照每年每月每個產(chǎn)品的銷售記錄被分組,每組內(nèi)包含了相同年月和產(chǎn)品ID的所有記錄。

          4. SUM(quantity_sold) - 聚合函數(shù),用于計(jì)算每個組內(nèi)quantity_sold字段的總和,即每個月每個產(chǎn)品的銷售總量。

          預(yù)期結(jié)果

          假設(shè)sales_records表中有如下數(shù)據(jù)(簡化示例):

          product_id product_name sale_date quantity_sold
          1 Product A 2024-01-10 5
          1 Product A 2024-01-15 3
          2 Product B 2024-01-12 7
          2 Product B 2024-02-01 2
          1 Product A 2024-02-05 4

          執(zhí)行上述查詢后,可能得到的結(jié)果如下:

          SaleYear SaleMonth product_id product_name TotalQuantitySold
          2024 1 1 Product A 8
          2024 1 2 Product B 7
          2024 2 2 Product B 2
          2024 2 1 Product A 4

          這個結(jié)果展示了每個產(chǎn)品在每個月的總銷售數(shù)量,例如2024年1月,Product A總共賣出了8件,而Product B則賣出了7件。這樣,通過GROUP BY子句,我們能夠輕松地對復(fù)雜數(shù)據(jù)集進(jìn)行匯總和分析


          程序汪接私活項(xiàng)目目錄,2023年總結(jié)

          Java項(xiàng)目分享  最新整理全集,找項(xiàng)目不累啦 07版

          程序汪10萬接的無線共享充電寶項(xiàng)目,開發(fā)周期3個月

          程序汪1萬接的企業(yè)官網(wǎng)項(xiàng)目,開發(fā)周期15天

          程序汪8萬接的共享口罩項(xiàng)目,開發(fā)周期1個月

          程序汪8萬塊的飲水機(jī)物聯(lián)網(wǎng)私活項(xiàng)目經(jīng)驗(yàn)分享

          程序汪接的4萬智慧餐飲項(xiàng)目

          程序汪接的酒店在線開房項(xiàng)目,另外一個好聽的名字叫智慧酒店


          歡迎添加程序汪個人微信 itwang008  進(jìn)粉絲群或圍觀朋友圈

          瀏覽 214
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩在线网址 | 大长腿美女被操 | 天堂网中文在线 | a视频在线免费观看 | AV夜夜看 |