题解 | #大小写混乱时的筛选统计#
大小写混乱时的筛选统计
https://www.nowcoder.com/practice/81cb12931a604811ae69d332515c7734
第一步,求出类别以及对应的数量
select tag, count(*) ct from examination_info e1 join exam_record e2 on e1.exam_id = e2.exam_id group by tag
第二步,自连接,可以直接使用UPPER函数进行连接
select t2.tag tag_,t2.ct,t3.tag ,t3.ct ct_ from t1 t2 join t1 t3 on UPPER(t2.tag) = t3.tag where t2.tag != t3.tag
第三步,选出需要的字段
select tag_, ct_ from ( select t2.tag tag_,t2.ct,t3.tag ,t3.ct ct_ from t1 t2 join t1 t3 on UPPER(t2.tag) = t3.tag where t2.tag != t3.tag )t1
总的:
with t1 as( select tag, count(*) ct from examination_info e1 join exam_record e2 on e1.exam_id = e2.exam_id group by tag ) select tag_, ct_ from ( select t2.tag tag_,t2.ct,t3.tag ,t3.ct ct_ from t1 t2 join t1 t3 on UPPER(t2.tag) = t3.tag where t2.tag != t3.tag )t1