SQL中取序号的问题
发布网友
发布时间:2022-06-08 21:55
我来回答
共4个回答
热心网友
时间:2023-09-10 17:50
这样不就行吗
创建测试表及插入数据
create table a
(顾客id int,
消费id int,
消费金额 int);
insert into a values (1,1,100);
insert into a values (1,2,20);
insert into a values (1,3,300);
insert into a values (1,4,40);
执行
set @r=0;
select @r:=@r+1, a.*
from A
where 顾客id=1;
结果
其中第一列就是消费次数
热心网友
时间:2023-09-10 17:50
这个问题的关键时候查询的时候使用的排序方式。有了排序方式你就可以在获取数据的时候构造虚拟的序号,有了序号序号就代表客户的第几次消费。比如使用排名函数生成等等。追问
大侠您好,小弟还是不太明白。
我现在使用交易记录ID排序的,order by 交易记录ID
排名函数?
谢谢大侠!
追答如果客户的消费次数如此重要的话,不妨修改一下设计思路,专门维护也是一种变通的方法,不需要拘泥于某中固定的方法
热心网友
时间:2023-09-10 17:51
mysql没有row_number
只能自己手动加
select new_A.*,(select coun(*) from A where 顾客id=new_A.顾客id and 消费记录id<=new_A.消费记录id ) from A new_A where 顾客id=‘XXXXX’
那个顾客id应该是你自己输入的。
如果把where 顾客id=‘XXXXX’去掉,那么上面的语句应该是查询出所有顾客的消费记录。
顾客id=‘XXXXX’ 可以加条件,加and就行。
我没环境,不能测试,大概应该是这样的。
热心网友
时间:2023-09-10 17:51
是oracle吗 oracle 可以查出序号追问MYSQL