国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Mysql中sum和group by聯用求和為什么會計算不準確?

Mysql中sum和group by聯用求和為什么會計算不準確?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 14:19:18 1697177958

一、Mysql中sum和group by聯用求和為什么會計算不準確

因為在MySQL中,GROUP BY 語句根據一個或多個列對結果集進行分組。在分組的列上我們可以使用 COUNT, SUM, AVG,等函數。WITH ROLLUP 可以實現在分組統計數據基礎上再進行相同的統計(SUM,AVG,COUNT…)。

GROUP BY 語法

SELECT column_name, function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

實例演示

本章節實例使用到了以下表結構及數據,使用前我們可以先將以下數據導入數據庫中。

SET NAMES utf8;

SET FOREIGN_KEY_CHECKS = 0;

— —————————-

—? Table structure for employee_tbl

— —————————-

DROP TABLE IF EXISTS employee_tbl;

CREATE TABLE employee_tbl (

? id int(11) NOT NULL,

? name char(10) NOT NULL DEFAULT ”,

? date datetime NOT NULL,

? signin tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘登錄次數’,

? PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

— —————————-

—? Records of employee_tbl

— —————————-

BEGIN;

INSERT INTO employee_tbl VALUES (‘1’, ‘小明’, ‘2016-04-22 15:25:33’, ‘1’), (‘2’, ‘小王’, ‘2016-04-20 15:25:47’, ‘3’), (‘3’, ‘小麗’, ‘2016-04-19 15:26:02’, ‘2’), (‘4’, ‘小王’, ‘2016-04-07 15:26:14’, ‘4’), (‘5’, ‘小明’, ‘2016-04-11 15:26:40’, ‘4’), (‘6’, ‘小明’, ‘2016-04-04 15:26:54’, ‘2’);

COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

導入成功后,執行以下 SQL 語句:

mysql> set names utf8;

mysql> SELECT * FROM employee_tbl;

+—-+——–+———————+——–+

| id | name?? | date??????????????? | signin |

+—-+——–+———————+——–+

|? 1 | 小明 | 2016-04-22 15:25:33 |????? 1 |

|? 2 | 小王 | 2016-04-20 15:25:47 |????? 3 |

|? 3 | 小麗 | 2016-04-19 15:26:02 |????? 2 |

|? 4 | 小王 | 2016-04-07 15:26:14 |????? 4 |

|? 5 | 小明 | 2016-04-11 15:26:40 |????? 4 |

|? 6 | 小明 | 2016-04-04 15:26:54 |????? 2 |

+—-+——–+———————+——–+

6 rows in set (0.00 sec)

接下來我們使用 GROUP BY 語句 將數據表按名字進行分組,并統計每個人有多少條記錄:

mysql> SELECT name, COUNT(*) FROM?? employee_tbl GROUP BY name;

+——–+———-+

| name?? | COUNT(*) |

+——–+———-+

| 小麗 |??????? 1 |

| 小明 |??????? 3 |

| 小王 |??????? 2 |

+——–+———-+

3 rows in set (0.01 sec)

WITH ROLLUP 可以實現在分組統計數據基礎上再進行相同的統計(SUM,AVG,COUNT…),使用 WITH ROLLUP,此函數是對聚合函數進行求和,注意 with rollup是對 group by 后的名列前茅個字段,進行分組求和。

延伸閱讀:

二、數據庫和 SQL 概念

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它的產生距今已有六十多年。隨著信息技術和市場的發展,數據庫變得無處不在:它在電子商務、銀行系統等眾多領域都被廣泛使用,且成為其系統的重要組成部分。

數據庫用于記錄數據,使用數據庫記錄數據可以表現出各種數據間的聯系,也可以很方便地對所記錄的數據進行增、刪、改、查等操作。

結構化查詢語言(Structured Query Language)簡稱 SQL,是上世紀 70 年代由 IBM 公司開發,用于對數據庫進行操作的語言。更詳細地說,SQL 是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統,同時也是數據庫腳本文件的擴展名。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT