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

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方式创建新表;

你可能感兴趣的:(数据库)