栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

mysql中每组的行号

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql中每组的行号

这个问题已经很老了。但是我想发布它,以防有人遇到相同的问题。

首先,描述的答案无法正确运行。例如,对于

id   crew_id   amount    type1      4       1000      AUB2      4       1500      AUB5      5       1000      AUB6      6       3000      AUB8      6       3500      AUB9      4       5000      AUB

(我刚刚删除了类型为“ CA”的行),结果表将是

id   crew_id   amount    rank   type1      4       1000      1      AUB2      4       1500      2      AUB9      4       5000      3      AUB5      5       1000      4      AUB6      6       3000      5      AUB8      6       3500      6      AUB

因此,实际上它并没有同时使用crew_id和type,而只是使用type。

这是我解决此问题的方法(可能有比使用两个嵌套的“ CASE”更优雅的方法,但是您知道了):

SELECt id,    amount,    CASE crew_id         WHEN @curCrewId THEN CASE type      WHEN @curType THEN @curRow := @curRow + 1      ELSE @curRow := 1 END        ELSE @curRow :=1    END AS rank,    @curCrewId := crew_id AS crew_id,    @curType := type AS typeFROM Table1 pJOIN (SELECT @curRow := 0, @curCrewId := 0, @curType := '') rORDER BY crew_id, type

主要思想仍然存在。我刚刚添加了一个变量@curCrewId。如果有人需要使用3个变量进行分组,则只需使用3个变量和3个嵌套的’CASE’。:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号