美文网首页
清洗数据的一个棘手的sql语句

清洗数据的一个棘手的sql语句

作者: 不懒狮Blaise | 来源:发表于2017-11-22 20:50 被阅读0次

    table test 表结构

    id, chapterid, widx
    60002   1   1
    60004   1   1
    60005   1   1
    ...
    ...
    60006   1   5
    60002   3   5
    60005   3   4
    60008   4   5
    

    问题: 如何把每个id的最大chapterid和最大widx列出来.

    思路:

    1. 我先固定一个值
    SELECT id, max(chapterid) as mid from pve_war where id in %s group BY id;
    60002   3
    60004   1
    60005   1
    60006   1
    

    2.再把固定的表和原表作为联合查询( 条件为tmp.id=pve_war.id AND tmp.mc=pve_war.chapterid)
    关键点为 1.要拿上表的max(chapterid)作为最终的chapteridm再找max(widx) 最后group by一下pve_war.id, tmp.mc

    SELECT pve_war.id, tmp.mc, max(widx) FROM pve_war, (SELECT id, max(chapterid) as mc FROM pve_war GROUP BY id) AS tmp WHERE tmp.id=pve_war.id AND tmp.mc =pve_war.chapterid group by pve_war.id, tmp.mc;
    

    相关文章

      网友评论

          本文标题:清洗数据的一个棘手的sql语句

          本文链接:https://www.haomeiwen.com/subject/nhbovxtx.html