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