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