Mysql中的WITH ROLLUP用法

2021-09-07 19:20:20 字數 2942 閱讀 5997

1.with rollup:在group分組欄位的基礎上再進行統計資料。

例子:首先在name欄位上進行分組,然後在分組的基礎上進行某些字段統計,表結構如下:

create

table

`test` (

`id`

int(11) not

null

auto_increment,

`title`

varchar(25) default

null comment '標題'

, `uid`

int(11) default

null comment '

uid'

, `

money` decimal(2,0) default'0

',`name`

varchar(25) default

null,

primary

key(`id`)

) engine

=innodb auto_increment=

8default charset=utf8mb4;

存幾條資料看看:

insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

2', '

國慶節', '

2', '

12', '

周伯通'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

3', '

這次是8天假哦

', '

3', '

33', '

老頑童'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

4', '

這是uid=1的第一條資料哦

', '

1', '

70', '

歐陽鋒'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

5', '

靈白山少主

', '

4', '

99', '

歐陽克'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

7', '

九陰真經創始人

', '

3', '

12', '

小頑童'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

8', '

雙手互博

', '

2', '

56', '

周伯通'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

9', '

銷魂掌', '

2', '

19', '

周伯通'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

10', '

**功', '

1', '

57', '

歐陽鋒'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

11', '

絕殺掌', '

3', '

800', '

小頑童'

);insert

into `test`.`test` (`id`, `title`, `uid`, `money`, `name`) values ('

12', '

九陰真經

', '

3', '

84', '

老頑童');

分組統計:

可以看到按照name分組後對money求和統計了。上面看到 null 1242, 如何搞個別名字段比如 總金額:1242呢?也可以滴,咱們繼續:

coalesce(a,b,c);

引數說明:如果a==null,則選擇b;如果b==null,則選擇c;如果a!=null,則選擇a;如果a b c 都為null ,則返回為null(沒意義)。

select

coalesce(name, '

總金額'),name, sum(money) as

上面可以看出,在資料彙總方面。用途還是很方便滴。

mysql中的編碼 mysql中的編碼

一 mysql中的編碼 mysql show variables like collation mysql show variables like character set 預設是latin1編碼,會導致中文亂碼。修改庫的編碼 mysql alter database db name charac...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...

mysql中的函式名 MySQL中的函式

一 數學函式 數學函式主要用於處理數字,包括整型 浮點數等。abs x 返回x的絕對值 select abs 1 返回1 ceil x ceiling x 返回大於或等於x的最小整數 select ceil 1.5 返回2 floor x 返回小於或等於x的最大整數 select floor 1.5...