数据库分组排序问题在线等急!!一个客户有多条交易记录按照账号和客户编号分组取交易金额前10条的记录

数据库分组排序问题在线等急!!一个客户有多条交易记录按照账号和客户编号分组取交易金额前10条的记录,第1张

首先,因为不知道您用的是什么数据库。

如下,仅以Oracle为例,希望可以触动您的灵感,SQL如下:

select

t2

from (

select

t1,

rank() over(partition by t1编号 order by t1日期 desc) as rk

from contract t1

) t2 where 1=1

and t2rk = 1

语句简介:以“t1编号”为分区维度,每个分区再以“t1日期 desc”为排序规则,返回每个分区排序后的顺序号,每个分区以 1 为排序起始索引。

SQL取分组中的前几名

[sql] >

这个sql有点麻烦了,

简单点的就直接

select id,name,type,score from student where type='小学生' limit 2 union select id,name,type,score from student where type='中学生' limit 2 ;

或者你用存储过程来做循环:查询出所有type然后在循环里动态给 查询语句中的type复制,有几个type就concat几个union上去,

其他直接写sql查询的话有点难,写不出来

可以通过row_number函数来实现。

如test表中数据如下:

现在要查询按年龄由大到小的第5-10位的人员名单,可用如下语句:

select tid,tname,tage 

from

(select row_number() over(order by age desc) as rn,id,name,age from test) t

where rn between 5 and 10

查询结果:

因分辨不出哪个是原创,链接就不加了。建立表结构如下:CREATE table [dbo][tmp_Trans](

ID int identity,

PO_NO varchar(20) null,

PO_Itemno varchar(20) null,

Qty numeric(18,6) null,

Trans_Date datetime null,

Doc_no varchar(20) null

)要求取相同PO_NO按Trans_Date倒序排序的前两条记录。1Where子句嵌套SELECT的方式。在嵌套的SELECT语句中可以与主表的字段相关联,达到分类的目的。这种方式又有三种写法:1)如果表中有主键,可以用IN的方式。SELECT FROM tmp_Trans t

WHERE ID IN(

SELECT TOP 2 ID

FROM tmp_Trans

WHERE PO_NO=tPO_NO

ORDER BY Trans_Date DESC

) 2)如果没有主键,可以用判断在本条记录前有多少条记录的方式。但使用这种方式时如果遇到Trans_Date相同的情况会不准。如当存在Trans_Date最大的记录有三条时,这三条记录都会查出来。SELECT

FROM tmp_Trans tWHERE (SELECT COUNT()

FROM tmp_Trans

WHERE PO_NO=tPO_NO AND Trans_Date>TTrans_Date

)

第一个SQL语句是语法错误,最外层查询的目标数据表为一个子查询,需要用一个别名来命名:

select sum(chengjiaoliang) 

from (

select top 5 chengjiaoliang from day_sh 

where daima = '600000' and riqi < '2010-05-13 00:00:00' 

order by riqi

) s

第二个查询语法没问题,但是得到的不是你想要的结果吧。

这里还要提醒一下: 最好不要用top n来取有排序规定的前N条记录,因为这不能保证取出的N条数据就是这个排序规定下的前N条。最好用分析函数row_number() over来获取排序值,然后再取需要的记录。

以上就是关于数据库分组排序问题在线等急!!一个客户有多条交易记录按照账号和客户编号分组取交易金额前10条的记录全部的内容,包括:数据库分组排序问题在线等急!!一个客户有多条交易记录按照账号和客户编号分组取交易金额前10条的记录、SQL如何对分组后的结果进行排序并且取前几名、mysql 用一条sql语句取出各类数据的前两N条数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10173322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存