mysql區間查詢 MySQL區間分組查詢

2021-10-25 14:24:53 字數 1569 閱讀 4463

假設a表為會員資訊表,需要統計男性會員年齡各階段的出現的人數

create table `a` (

`id` int(11) unsigned not null auto_increment,

`name` varchar(255) not null default '' comment '會員名稱',

`***` tinyint(1) unsigned not null default '0' comment '性別,1、男 2、女',

`age` tinyint(3) unsigned not null default '0' comment '年齡',

primary key (`id`)

) engine=innodb default charset=utf8mb4;

假設現在資料庫中有資料如下:

方法一:

select

elt(

interval (age, 0, 20, 30, 40),

"1-20",

"21-30",

"31-40",

"40+"

) as age_area,

count(name) as num

from

`a`where

*** = 1

group by

elt(

interval (age, 0, 20, 30, 40),

"1-20",

"21-30",

"31-40",

"40+"

說明:利用 interval 劃出4個區間

再利用 elt 函式將4個區間分別返回乙個列名

方法二:

select

case

when age >= 1

and age <= 20 then

"1-20"

when age > 20

and age <= 30 then

"21-30"

when age > 30

and age <= 40 then

"31~40"

else

"40+"

end) as age_area,

count(name) as num

from

awhere

*** = 1

group by

case

when age >= 1

and age <= 20 then

"1-20"

when age > 20

and age <= 30 then

"21-30"

when age > 30

and age <= 40 then

"31~40"

else

"40+"

end結果:

mysql 分區間查詢 MySQL區間分組查詢

假設a表為會員資訊表,需要統計男性會員年齡各階段的出現的人數 create table a id int 11 unsigned not null auto increment,name varchar 255 not null default comment 會員名稱 tinyint 1 unsi...

MySQL區間分組查詢

假設a表為會員資訊表,需要統計男性會員年齡各階段的出現的人數 create table a id int 11 unsigned not null auto increment,name varchar 255 not null default comment 會員名稱 tinyint 1 unsi...

記Mysql區間分組查詢實現

場景 一張使用者表 user 有使用者id id 餘額 balance 等字段,要求展示 餘額在某個區間內的人數 區間有0 1萬,1 10萬,10 50萬,50 100萬,100萬 下面是模擬資料 使用者id 餘額 1 100 2 200 3 3223 4 100001 5 100025 6 512...