sql语句分组查询排序后取出前n条记录

本文介绍如何使用SQL语句实现按特定字段分组并排序后选取每组的前N条记录,以及WITH语句的正确使用方法,避免在创建新表时的常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.sql语句分组排序后取出前n条记录

(SELECT
	*
FROM
	(
		SELECT
			"row_number" () OVER (
				PARTITION BY mmsi
				ORDER BY
					orginal_in_draught DESC
			) AS rid,
			mmsi,
			orginal_in_draught
		FROM
			shipping_od_cargo_2017_1218_rec
	) tt1
WHERE
	tt1.rid < 4

该sql语句主要实现,按照mmsi数值分组,然后按照orginal_in_draught 数值倒序排序后,取出每组中最大的前三条记录。

2.with as用法
使用多个with创建临时表tab_tem1的时候,不能够紧跟着使用create根据查询临时表tab_tem1的返回结果创建新表表;但是可以使用select value1,value2 into new_tab from tab_tem1方式创建新表;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值