`

分组排序 还可以这样

阅读更多

要求查询每个用户对应的最大样品信息,忽然想到ms sql提供过 row_number() over(partition by 列 order by 列 desc),那么oracle可能也存在,

我的表结构如下:

复制代码
create table NEOGOODSRULE
(
  ID          NUMBER(22) not null,
  PERSONALID  NVARCHAR2(50),
  CT_SMP_TYPE NVARCHAR2(100)
)
tablespace VGSM
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
复制代码

数据如下:

复制代码
insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2270, 'JYZ', '原料');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2271, 'JYZ', '辅料');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2359, 'SYSTEM', '包材(内)');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2360, 'SYSTEM', '包材(外)');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2361, 'SYSTEM', '原料');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2362, 'SYSTEM', '成品');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2363, 'SYSTEM', '稳定性(加速)');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2364, 'SYSTEM', '稳定性(长期)');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2365, 'SYSTEM', '辅料');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2354, 'LY', '成品');

insert into neogoodsrule (ID, PERSONALID, CT_SMP_TYPE)
values (2355, 'LY', '原料');
复制代码

ROW_NUMBER()语法如下:

1、row_number() over(order by column asc)先对列column按照升序,再为每条记录返回一个序列号:

select personalid,row_number() over(order by personalid asc) rn from  neogoodsrule

2、row_number() over(partition by column1 order by column2 asc) 先按照column1分组,再对分组后的数据进行以column2升序排列

select personalid,ct_smp_type,row_number() over(partition by personalid order by ct_smp_type asc) rn from neogoodsrule 

 

由此,开始所提的需求sql代码如下

select * from (select personalid,ct_smp_type,row_number() over(partition by personalid order by ct_smp_type asc) rn from neogoodsrule )
where rn=1

 

 

 

 

出处:http://www.cnblogs.com/hfliyi/archive/2013/03/17/2964057.html

分享到:
评论

相关推荐

    java 集合分组与排序

    在Java编程中,集合框架是核心部分,它提供了数据...同时,`ArrayHelp`和`ClassLoadUtil`这样的工具类可以帮助我们更方便地操作数组和管理类加载。在实际开发中,合理运用这些工具可以显著提高代码的效率和可维护性。

    城市列表(按照字母分组排序)

    在Android开发中,"城市列表(按照字母分组排序)"是一个常见的功能需求,它能够帮助用户更加方便快捷地找到所需的城市。这个功能通常应用于地图应用、天气应用或者是任何需要用户选择地理位置的软件。实现这样的...

    wpf--ListBox分组-排序

    总结来说,WPF的ListBox提供了强大的数据绑定和呈现能力,通过数据源的分组和排序功能,我们可以轻松地创建出具有高级特性的用户界面。在实际开发中,还需要注意数据绑定的性能优化,以及适当使用MVVM模式,使代码...

    Mysql利用group by分组排序

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

    MySQL分组排序功能

    由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQL里需要实现这样的功能,我们只能用一些灵活的办法

    按拼音排序分组LIST

    另外,如果数据量过大,可以考虑使用数据库(如SQLite)进行存储和查询,这样可以利用数据库的排序功能,提高效率。 总的来说,“按拼音排序分组LIST”这个功能涉及了Android应用开发中的数据处理、UI设计、事件...

    Android ListView城市列表,按a-z分组字母索引排序

    分组则是将相同首字母的城市归为一类,这可以通过遍历排序后的城市列表,检查每个城市的首字母,并根据首字母创建对应的SectionHeader。 为了显示分组的字母索引,我们可以创建一个侧滑的字母栏(AlphabetIndexer)...

    引入激活加权策略的分组排序学习方法.docx

    这样可以适应性地强调某些文档对排序的影响,特别是对于同类型文档的比较,同时减轻不同文档对单个样本的不必要影响。通过这种方式,W-GSF能够在保持良好排序性能的同时,降低计算成本。 实验结果证明,W-GSF相比于...

    javascript经典特效---jQuery实现动态图文分组排序切换源码.rar

    总结来说,通过学习和实践这个jQuery动态图文分组排序切换源码,你可以掌握如何利用jQuery选择器、动画效果以及事件处理来创建复杂的网页交互特效。这不仅加深了对jQuery的理解,也为你的前端开发技能添砖加瓦。

    listview图标,排序,分组

    通过分析和学习这个项目,开发者可以快速掌握ListView控件的使用技巧,包括图标显示、排序和分组。在实际开发中,结合具体的业务需求,我们可以灵活运用这些功能,创建出满足用户需求的高效且直观的用户界面。

    易语言分组插入排序.rar

    3. 这种分组策略可以有效减少大规模数据排序时的比较和交换次数,尤其是在数据已经部分有序的情况下,分组插入排序的效率较高。 4. 在易语言中实现分组插入排序,需要编写相应的函数或者过程,包括创建小组、在小组...

    java集合分组(Guava)

    例如,如果我们想计算每个分组的元素数量,可以这样做: ```java Map, Long> personCountByAge = people.stream() .collect(groupingBy(Person::getAge, counting())); // 这将创建一个Map,键是年龄,值是对应...

    好友列表排序,分组

    这个“好友列表排序,分组”的demo展示了如何实现这样的功能。首先,我们需要理解好友列表的核心数据结构,通常是一个包含多个联系人对象的数组,每个对象包含了姓名、电话、头像等信息。 1. **数据模型设计**: ...

    分组并排序取前N

    标题“分组并排序取前N”涉及到数据库查询中的一个重要概念,这通常指的是在SQL查询中使用`GROUP BY`、`ORDER BY`以及`LIMIT`子句来对数据进行分组、排序,并提取出每组中排名靠前的N条记录。在数据库管理中,这种...

    mvc分页、排序、分类

    最后,对于保持分页和排序时的类别信息,我们需要在排序和分页按钮的链接中附加类别参数,这样在用户切换分页或排序时,系统仍能知道当前显示的是哪个分类的产品。 通过以上步骤,你将能在MVC4电子商务网站中实现...

    ListView城市列表,按a-z分组字母索引排序

    通过以上分析,我们可以了解到如何在Android中实现一个功能丰富的城市选择列表,包括字母排序、分组和顶开首字母等功能。这样的列表不仅能提升用户体验,也能为大数据量的展示提供高效的导航方式。

    java扑克牌的创建、洗牌、分组、排序

    在Java编程中,创建、洗牌、分组和排序扑克牌是一种常见的算法实践,它可以用于理解和掌握数据结构、集合操作以及随机数生成等基础知识。在这个场景中,我们通常会使用集合框架来实现扑克牌的逻辑,例如ArrayList...

Global site tag (gtag.js) - Google Analytics