首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何比较最后一条记录和最后一条记录- 1?

如何比较最后一条记录和最后一条记录- 1?
EN

Stack Overflow用户
提问于 2015-09-01 03:31:37
回答 3查看 1K关注 0票数 2

假设我有一个来自join select的表,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
No.Transaction   Item Name   PRICE
TC0001           Book        15
TC0001           Pencil      2
TC0001           Eraser      1
TC0002           Book        12
TC0002           Eraser      1.5
TC0003           Pencil      1.8
TC0003           Book        20

我想比较相同商品名称的上一次价格和前一次价格。例如Book is 20 and 12Pencil is 1.8 and 2

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2015-09-01 03:55:19

我认为您需要这样的查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
;WITH t AS (
    SELECT *
        , ROW_NUMBER() OVER (PARTITION BY [Item Name] 
                             ORDER BY [No.Transaction] DESC) As seq
    FROM yourTable)
SELECT t1.[Item Name]
    , t1.PRICE As lastPrice
    , t2.PRICE As preLastPrice
    , t1.PRICE - ISNULL(t2.PRICE, 0) As changePrice
FROM t t1
    LEFT JOIN
     t t2 ON t1.[Item Name] = t2.[Item Name] AND t1.seq = t2.seq - 1
WHERE (t1.seq = 1);
票数 6
EN

Stack Overflow用户

发布于 2015-09-01 03:41:41

您必须找到列来对结果进行排序,然后使用DENSE_RANK()并获得最后两行,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT *
(
    SELECT transactionId
        ,itm_name
        ,price
        ,DENSE_RANK() OVER (PARTITION BY itm_name ORDER BY created_date DESC) AS [rank]
    FROM tbl
) res
WHERE res.[rank] IN (1,2)
ORDER BY res.[rank] 
票数 3
EN

Stack Overflow用户

发布于 2015-09-01 03:34:52

查询操作。添加group by、limit(2)、order DESC。你应该得到你需要的东西。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32323098

复制
相关文章
Power BI: 如何提取最后一条记录
文章背景:在工作中,有时需要提取同一日期的最后一条记录。比如每个客户的最后一次下单记录,或者每个产品最后一次卖出记录等。
Exploring
2023/08/17
1.5K0
Power BI:  如何提取最后一条记录
mysql查找最后一条记录_mysql查询记录总数
首先要确定什么是最后一条。 是编辑时间最新的为最后一条,还是某个字段数字最大的未最后一条。 比如以时间最大为最后一条,则将符合条件的资料都筛选出来,再按时间排序,再取一笔资料。 SQL如下:
全栈程序员站长
2022/10/04
6.8K0
MYSQL中获取得最后一条记录的语句
在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中 常见的用法。但是在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录。这里面有个困 难,就是插入主表记录后,如何获得它对应的id。通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以“X锁“,待获得max(id)的值以后,再解锁。这种做法需 要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作。乍一看,它和select max(id)很象,但实际上它是线程安全的。也就是说它是具体于数据库连接的。下面通过实验说明:
shirayner
2018/08/10
4K0
mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录「建议收藏」
其中,”ID”为每条记录的唯一ID(一般为自增字段),”No”为每条记录在表中对应的位置(为直观起见),”Other”为表中的其他信息(可为N个字段).
全栈程序员站长
2022/10/03
4.3K0
顾客最后消费记录问题
小勤:大海,为提高顾客服务体验,公司现在要求除了将顾客的所有消费记录提出来外,还要求将顾客的最后一次消费记录提取出来,发给现场的销售人员,方便他们提供更好的服务。
大海Power
2021/08/30
4200
3分钟短文 | Laravel模型获取最后一条插入记录的ID编号
为了模拟实际编程情况,我们使用以下代码。比如有一个CRM系统,需要用户输入上报公司信息之后,通过API接口返回提示信息。
程序员小助手
2020/08/03
2.7K0
SQL 删除重复记录,只保留一条记录
删除表中多余的重复记录,重复记录是根据单个字段(id)来判断,只留有rowid最小的记录 
用户8099761
2023/05/10
1.1K0
iOS 中隐藏UITableView最后一条分隔线
如何优雅的隐藏UITableView中最后一条分割线? 这个问题是很常见,却又不太容易解决的。 可能通常的做法都是隐藏UITableView的分割线,自定义一条。 最近在使用弹出菜单的时候,同样遇到了这个问题。
Haley_Wong
2018/08/22
1.2K0
窃听风云:扒掉你的最后一条“胖次”
“每个人的手机都是一部窃听器,不管你开不开机,都能被窃听。”在2009年上映的《窃听风云》中吴彦祖饰演的人物有这样一句台词,随着影片热映,“手机窃听”的问题被更多的人顾虑,网络商家也大肆推出各种窃听软件和设备,甚至某宝上也可以买到“GSM阻截器”,但是GSM阻截器需要相关仪器功率巨大,一般几百至几千的售卖多为骗人的假货,相关的技术分析网上有很多,这并不是我们今天谈论的主题。一般的窃听分为物理窃听和软件窃听,而软件窃听的成本相较较低,但是一般的窃听软件买卖信息也为假货。
FB客服
2018/12/19
1.3K0
窃听风云:扒掉你的最后一条“胖次”
sql中筛选第一条记录
我们现在有一张表titles,共有4个字段,分别是emp_no(员工编号),title(职位),from_date(起始时间),to_date(结束时间),记录的是员工在某个时间段内职位名称,因为会存在升职,转岗之类的,里面emp_no可能会对应多个职位,我们现在要取到所有员工最近的职位信息,包括离职员工。
Awesome_Tang
2018/09/11
1.3K0
sql中筛选第一条记录
如何取SQL结果集的第一条记录
本文转载自博主编程老高的如何取SQL结果集的第一条记录的博客,特此记录一下。 因为之前使用的SQLServer数据库比较多,今天要查询MySQL数据库中的一张表时查询速度很慢,因为里面存放了base64编码的图片信息,半天打不开表。于是想使用SQLServer中SELECT TOP 1 * FROM t_testTbl;的功能呢。这里以SQLSever、MySQL、Oracle这3种主流关系型数据库为例,看一下对应数据库中是如何取SQL结果集的第一条记录。
ccf19881030
2020/08/25
3.2K0
[android] 插入一条记录到系统短信应用里
获取ContentResolver对象,通过getContentResolver()方法
唯一Chat
2019/09/10
1.6K0
InnoDB行锁,如何锁住一条不存在的记录?
《InnoDB,5项最佳实践,知其所以然?》发布后,不少同学留言希望讲讲MySQL的InnoDB行锁机制。要细聊MySQL的行锁,难以避免的要从事务的四种隔离级别说起。
架构师之路
2018/08/17
1.1K0
InnoDB行锁,如何锁住一条不存在的记录?
InnoDB行锁,如何锁住一条不存在的记录?
Java架构师必看
2021/09/29
6800
mysql删除重复记录只保留一条
查询出所有重复记录 select 字段名,字段名 from 表名 where 重复字段名 in (select 重复字段名  from 表名 group by 重复字段名  having count(1) >= 2) ORDER BY  重复字段名 查询出所有重复记录并且删除多余的只保留一条 delete from 表名 where  重复字段名 in ( SELECT a.重复字段名from( select 重复字段名 from 表名 group by 重复字段名 having count(1
仙士可
2019/12/18
3.1K0
复制某一条数据记录并新建
当我们添加一些数据的时候,有些数据很多列都是重复的,只有一、两列才会有变动,如果用导入导出的功能又太麻烦,因为数据可能就几条,所以很多软件都会有复制新建功能
正经人
2023/08/09
3120
Oracle 多表连接查询取最近一条记录
2、 通过这个函数 select a.* row_number() over(partition by 分组的字段 order by 排序时间 desc) as rn from (结果集) a
斯文的程序
2019/11/07
2.8K0
Oracle 多表连接查询取最近一条记录
如何实现 MySQL 删除重复记录并且只保留一条
blog.csdn.net/n950814abc/article/details/82284838
JAVA葵花宝典
2020/11/04
1.3K0
如何实现 MySQL 删除重复记录并且只保留一条
Python-sqlite3-03-插入一条记录
语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
zishendianxia
2019/10/23
1.3K0
Python-sqlite3-03-插入一条记录
点击加载更多

相似问题

如何删除最后一条记录

10

获取最后一条记录

22

如何从最后一条记录浏览到最后一条记录之前的10条记录?

116

如何查询最后一条记录

21

如何获取最后一条记录

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文