select substring_index(substring_index(profile,',',3),',',-1) as age, count(device_id) as number from user_submit group by substring_index(substring_index(profile,',',3),',',-1);
select substring_index(substring_index(profile,',',3),',',-1) as age
:首先使用substring_index(profile,',',3),它是在profile字段中以逗号为分隔符,提取前 3 个部分。然后在上述结果基础上,再使用substring_index(...,',', -1),从结果中提取最后一个部分,这个部分作为年龄字段,并命名为age。count(device_id) as number
:统计device_id
的数量,并命名为number
。from user_submit
:表明数据来源是user_submit
表。group by substring_index(substring_index(profile,',',3),',',-1)
:根据提取出的年龄部分进行分组。
整体来说,这段 SQL 语句是按照年龄对user_submit
表中的数据进行分组,并统计每个年龄对应的设备数量。例如,如果profile
字段数据为"name,gender,25,city"
,通过上述操作可提取出年龄 25,然后对不同年龄的设备数量进行统计。