SQL实现根据字段对表分组,并对每组进行排序取第一条数据
SQL实现根据字段对表分组,并对每组进行排序取第一条数据一、ROW_NUMBER()二、SQL实现一、ROW_NUMBER()ORCLE中,ROW_NUMBER() 为排名函数,负责对返回结果编号;over()为分析函数,更加()中内容返回多个结果集;ROW_NUMBER () OVER (PARTITION BY ... ORDER BY ...)二、SQL实现假设存在表TABLE_A 和TAB
·
SQL实现根据字段对表分组,并对每组进行排序取第一条数据
一、ROW_NUMBER()
ORCLE中,ROW_NUMBER() 为排名函数,负责对返回结果编号;over()为分析函数,更加()中内容返回多个结果集;
ROW_NUMBER () OVER (PARTITION BY ... ORDER BY ...)
二、SQL实现
假设存在表TABLE_A 和TABLE_B ,需要对TABLE_A中的kind字段进行分组,并对分组按照kind_num排序,并取得每个分组的第一条数据,得到结果集S;再对结果集S根据TABLE_B的ID筛选ID相同的数据,SQL设计如下:
SELECT
*
FROM(
SELECT
*
FROM(
SELECT
ROW_NUMBER() OVER(PARTITION BY KIND
ORDER BY KIND_NUM DESC) AS NEW_INDEX,*
FROM
TABLE_A)
WHERE NEW_INDEX = 1) AS A,
TABLE_B AS B
WHERE
A.ID = B.ID;
更多推荐
已为社区贡献1条内容
所有评论(0)