溫馨提示×

sql row_number()函數(shù)嵌套

sql
小樊
81
2024-10-19 15:30:00
欄目: 云計(jì)算

在 SQL 中,ROW_NUMBER() 函數(shù)用于為查詢結(jié)果集中的每一行分配一個(gè)唯一的數(shù)字。當(dāng)您需要嵌套使用 ROW_NUMBER() 函數(shù)時(shí),通常是在同一個(gè)查詢中為不同條件或分組分配行號。以下是一個(gè)嵌套 ROW_NUMBER() 函數(shù)的示例:

WITH RankedData AS (
  SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY sort_column) AS row_num_1,
    ROW_NUMBER() OVER (ORDER BY sort_column) AS row_num_2
  FROM
    your_table
)
SELECT
  *
FROM
  RankedData
WHERE
  row_num_1 = 1 OR row_num_2 = 1;

在這個(gè)示例中,我們首先使用 WITH 子句創(chuàng)建了一個(gè)名為 RankedData 的臨時(shí)結(jié)果集。在這個(gè)結(jié)果集中,我們?yōu)槊恳恍蟹峙淞藘蓚€(gè)行號:row_num_1row_num_2row_num_1 是基于 group_column 分組的行號,而 row_num_2 是基于 sort_column 的排序行號。

最后,我們從 RankedData 結(jié)果集中選擇了所有行,其中 row_num_1 為 1 或 row_num_2 為 1。這將返回每個(gè)分組的第一行以及按排序順序的第一行。

0