Postgresql中的ORDER BY按照多个列排序

问题:

从表中取出数据时,想按照其中的两列排序,比如交易日期、交易时间,如下:
在这里插入图片描述
在这里插入图片描述
样本数据中的交易日期范围是从 ‘2016-01-05’ 到 ‘2016-01-07’,其中,每个交易日期的交易时间范围是从9:50到15:00(这里最后一天只到9:50),现在想要取出最后一个交易日期的最后一分钟的数据,即’2016-01-07’、'09:50:00’的数据,方法如下:

df = pd.read_sql_query("""SELECT DISTINCT *
                            FROM 表名
                             	ORDER BY 交易日期 DESC, 交易时间 DESC LIMIT 1;""",con=engine)

DESC 是按照降序排列,默认是升序排列。所以,先按照交易日期降序排列,最上面的是日期最大的,也就是’2016-01-07’,再按照交易时间降序排列,最上面的是分钟最大的,也就是’09:50:00’,再通过LIMIT 1 取出第一行,这样就实现了取出最后一个交易日、最后一分钟数据,如下:
在这里插入图片描述
这里要注意的就是,因为LIMIT 1 是取出表格的第一行,所以如果想取出最后一行的话,需要把表格先按照降序排列,再取出第一行,就相当于是升序排列时的最后一行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值