`
一笑_奈何
  • 浏览: 66940 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Mysql的取分组之后的每组的第一条数据

阅读更多
    最近在项目中遇到了一个问题就是营业员提成,但是营业员提成方式中有几个提成方式比较复杂就是按照子节点访问当前子节点的提成比率,如果当前节点的提成比率没有设置那么就访问上一级节点的提成比率,直到访问到根节点的提成比率。当时遇到这个我就怀恋Oracle了,因为Oracle里面恰恰有递归访问树形节点方法,但是现在用到mysql做数据库有什么办法了,所以还是要想办法去解决这个问题呀,经过我自己想和在网上找的资料终于解决这个问题。
  
       SELECT A.* FROM (
 select cs.SORT_ID , s.SORT_ID P_SORT_ID, s.CUT_RATIO from sort s 
     join sort cs WHERE cs.ID_PATH LIKE concat(s.ID_PATH,'%') AND cs.STATE_PATH not like '%0%' order by cs.SORT_ID, cs.NLEVEL DESC, s.SORT_ID DESC) A 
   WHERE A.CUT_RATIO != 0 GROUP BY A.SORT_ID LIMIT 0,1000000 
   

    这段sql主要意图是我现在里面把当前节点的所有对应的父节点找到然后进行排序,排序好了之后我在最外层排除提成比率为0的在进行分组,这样就能够得到每个分组下面的第一条数据。
    哈哈,挺简单的吧!
分享到:
评论

相关推荐

    Mysql取分组后的每组第一条数据

    Mysql取分组后的每组第一条数据 gruop by 分组后 进行 order by mysql会按照 先分组后排序的形式进行输出 并不能做到每组中的第一条数据取出。 我的思路是 : 先将要查询的数据表转换成已经排序的临时表 在进行 分组...

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    Mysql利用group by分组排序

    首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@rowno := @rowno + 1) as rank, score, (C.end_ti

    mysql数据库的基本操作语法

    修改tel列的位置,在第一列显示 alter table user modify tel varchar(15) default '02087654321' first; 修改tel列的位置,在指定列之后显示 alter table user modify tel varchar(15) default '02087654321' after...

    MySQL命令大全

    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本...

    PHP和MySQL Web开发第4版pdf以及源码

    3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符...

    PHP和MySQL WEB开发(第4版)

    第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 ...

    MYSQL常用命令大全

    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    不加条件,那么就只取每个分组的第一条。 如果想看分组的内容,可以加groub_concat [sql] view plain copy select STU_SEX,group_concat(STU_NAME) from STUDENT group by STU_SEX; 3.2、一般情况下group需与...

    Mysql:如果有多个记录,如何选择第二行,如果只有一个记录,如何选择第一行?

    您需要做的第一件事是根据stitems_ID对数据进行分组。 您可以基于排序顺序为每个“组”中的每个项目分配一个row_number-在这种情况下,基于stitemsu_UnitNum升序(因为您希望每个组中有两个最小的度量值)。 看看...

    MySQL 入门学习 ——基础教程

    · 4、第一条命令 mysql> select version(),current_date(); +----------------+-----------------+ | version() | current_date() | +----------------+-----------------+ | 3.23.25a-debug | 2001-05-17 | ...

    PHP和MySQL Web开发第4版

    3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    全书压缩打包成2部分,这是第1部分。 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    目录: 第1篇 基础篇 第1章 开发环境 2 1.1 AppServ——PHP集成化安装包 3 实例001 通过AppServ配置PHP开发环境 3 实例002 AppServ应用技巧 6 实例003 第1个PHP程序 7 1.2 XAMPP——PHP集成化安装包 8 实例004 通过...

    SQL_SERVER应用与开发范例宝典_12357672.part1

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL_SERVER应用与开发范例宝典_12357672.part2

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL应用开发范例宝典:SQL应用开发范例宝典.iso (源码光盘)

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL_SERVER应用与开发范例宝典_12357672.part3

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    PHP程序开发范例宝典III

    实例227 使用聚集函数First或Last求数据表中第一条或最后一条记录 352 8.10 多表查询 354 实例228 使用select语句进行多表查询 354 实例229 使用表的别名 355 实例230 合并多个结果集 356 8.11 嵌套查询...

Global site tag (gtag.js) - Google Analytics