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);
  1. select substring_index(substring_index(profile,',',3),',',-1) as age:首先使用substring_index(profile,',',3),它是在profile字段中以逗号为分隔符,提取前 3 个部分。然后在上述结果基础上,再使用substring_index(...,',', -1),从结果中提取最后一个部分,这个部分作为年龄字段,并命名为age。
  2. count(device_id) as number:统计device_id的数量,并命名为number
  3. from user_submit:表明数据来源是user_submit表。
  4. group by substring_index(substring_index(profile,',',3),',',-1):根据提取出的年龄部分进行分组。

整体来说,这段 SQL 语句是按照年龄对user_submit表中的数据进行分组,并统计每个年龄对应的设备数量。例如,如果profile字段数据为"name,gender,25,city",通过上述操作可提取出年龄 25,然后对不同年龄的设备数量进行统计。