Mysql elt()和INTERVAL(),统计年龄区间多少人

SELECT elt(
  INTERVAL(age, 18, 24, 29, 34, 39, 44, 49, 100),
  '18-23', '24-28', '29-34', '33-39', '43-49', '48-100','未知') as '年龄区间',
  count(*) as '总人数'
FROM user
GROUP BY elt(
  INTERVAL(age, 18, 24, 29, 34, 39, 44, 49, 100),
  '18-24', '24-29', '29-34', '34-39', '44-49', '49-100')

1、ELT(N,str1,str2,str3,...)

看以下示例

select elt(4,'mysql','java','redis','mq','fun')

-- 输出  mq
select elt(1,'mysql','java','redis','mq','fun')

-- 输出  mysql
select elt(6,'mysql','java','redis','mq','fun')

-- 输出  null

参数

        N:它是一个整数,是要检索的字符串的索引。

        字符串1,字符串2,字符串3:我们要从中检索的字符串列表。

返回
        它在指定的索引处返回一个字符串。如果指定的索引N处没有字符串,则返回NULL。

2、INTERVAL(N,N1,N2,N3,...)

N 是要判断的数值  N1,N2,N3,....是分段的间隔

例: INTERVAL(age, 18, 24, 29, 34, 39, 44, 49, 100)

如果 N<N1  返回0,

N1<=N<N2  返回1 ,

如果N2<=N<N3  返回2 

看以下实例

select age,INTERVAL(age,18,24) form user;

-- 输出

-- age   INTERVAL(age,18,24)
-- 17    0
-- 16    0
-- 19    1
-- 21    1
-- 25    2
​
select 
    INTERVAL(age,18,24),
    count(1)
from 
    user
group by
    INTERVAL(age,18,24)

数据

id  age
1	13
2	17
3	19
4	24
5	21
6	50
7   51

输出
INTERVAL(age,18,24)     count(1)
0	                    2
1	                    2
2	                    3

​

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值