ELT和INTERVAL函数

ELT函数

如果N = 1,则返回str1;如果N = 2,则返回str2,依此类推。 如果N小于1或大于参数个数,则返回NULL。

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

SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo'); 

结果:ej

INTERVAL函数

将N的值与值列表(N1,N2,N3等)进行比较。 如果N <=N1,则函数返回0;如果N <=N2,则函数返回1;如果N <=N3,则函数返回2,依此类推。 如果N为NULL,它将返回.1。 值列表的格式必须为N1 <N2 <N3。

SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);

结果:6

-- 应用演示示例:查询total_fraction(分值)在0-100的各个区间段的出现的用户数量

SELECT ELT(INTERVAL(total_fraction,0,20,40,60,80,100),"0-20","20-40","40-60","60-80","80-100") as tt,count(id) num FROM ads_company_health

WHERE flag=0 GROUP BY ELT(INTERVAL(total_fraction,0,20,40,60,80,100),"0-20","20-40","40-60","60-80","80-100");

结果:

tt num

0-20 47
20-40 134793
40-60 1123
60-80 59
80-100 6

posted @ 2020-06-01 09:57  代码伊甸园  阅读(743)  评论(0编辑  收藏  举报