SELECT a.age, COUNT( a.device_id) FROM (SELECT device_id, substring_index(SUBSTRING_INDEX(profile,",",3),",",-1) as age from user_submit) a group by age order by age DESC 之前写的时候想到用窗口函数,但是想不明白排序后如何筛选最小值。 经其他同学的就解答才想起来,可以降序排序,然后求rank=1的值就是了。这里我用了dense_rank,因为撇开这个例题,考虑到实际中会有同分的情况,我这里理解应该都筛选出来。