`
中华好儿孙
  • 浏览: 68715 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用普通sql代替row_number函数

    博客分类:
  • sql
阅读更多
在sqllite这样的数据库里没有row_number或者rank这样的分析函数, 但有时候需要实现一些需求比如取各班的成绩第一名的学生,这时候如果数据库里没有分析函数,也可以使用普通sql来解决。
CREATE TABLE stugrade (
stuid VARCHAR(10),
stuname VARCHAR(100) not NULL,
score INT,
classid VARCHAR(5) ,
 PRIMARY KEY(stuid)
)ENGINE=INNODB DEFAULT CHARSET=utf8


INSERT INTO stugrade(stuid,stuname,score,classid)
SELECT '001','小明',93,'1'
union ALL
SELECT '002','小李',80,'1'
union ALL
SELECT '003','小张',95,'2'
union ALL
SELECT '004','小王',91,'2'
union ALL
SELECT '005','小猪',70,'3'


SELECT t.stuid,
       t.stuname,
       t.score,
       t.classid
FROM stugrade t
where t.score = (SELECT max(tmp.score) from stugrade tmp where tmp.classid=t.classid)
分享到:
评论

相关推荐

    SQL Server中row_number函数的常见用法示例详解

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数。 行号以每个分区中第一行的行号开头。 以下是ROW_NUMBER()函数的语法实例: select *,row_...

    row_number.rar_SQL中row_number用法_number

    在SQL语言中,`ROW_NUMBER()`函数是一种非常重要的窗口函数,用于为查询结果集中的每一行分配一个唯一的整数。这个数字通常按照行的出现顺序进行分配,但也可以根据特定的排序条件进行调整。`ROW_NUMBER()`在数据...

    SQL ROW_NUMBER()分页比较

    在 SQL Server 2005 中,使用 ROW_NUMBER() 函数可以实现分页功能,这种方法相比于 SQL Server 2000 中的分页方式效率要高出很多。但是,很多人在使用 ROW_NUMBER() 函数时,使用的方法并不正确。 在本文中,我们将...

    ROW_NUMBER()函数

    在本文中,我们将详细介绍 ROW_NUMBER() 函数的使用方法和优点,以及如何使用它来实现高效的数据分页。 ROW_NUMBER() 函数的使用方法 --------------------------- ROW_NUMBER() 函数的基本语法是:`ROW_NUMBER() ...

    SQLServer中Partition By及row_number 函数使用详解

    在SQL Server中,`PARTITION BY` 和 `ROW_NUMBER()` 是两种非常重要的分析函数,它们在处理大数据集时尤其有用。本文将详细讲解这两个函数的使用方法及其在实际场景中的应用。 `PARTITION BY` 关键字是分析函数的一...

    oracle分析函数row_number() over()使用

    Oracle的分析函数`ROW_NUMBER() OVER()`是一种强大的工具,用于在查询结果集中为每一行分配一个唯一的序列号。这个函数通常用于数据分页、排名或者为特定条件的记录分配顺序。下面我们将详细讨论`ROW_NUMBER() OVER...

    ROW_NUMBER() OVER函数的基本用法

    ROW_NUMBER() OVER 函数是 SQL Server 中的一个窗口函数,用于对查询结果进行编号。该函数可以根据指定的列进行分组和排序,并为每一组记录返回一个唯一的编号。 语法: ROW_NUMBER() OVER (PARTITION BY COLUMN ...

    SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    - `row_number`:为每一行生成一个唯一的序号,不受相同值的影响。 - `rank`:在考虑相同值的情况下分配序号,出现相同值时跳过序号。 - `dense_rank`:同样考虑相同值,但保证序号的连续性,不会跳过序号。 - `...

    oracle row_number用法

    除了以上基础用法外,`ROW_NUMBER()`还可以与其他窗口函数组合使用,实现更复杂的数据分析需求。例如,结合`LAG()`和`LEAD()`函数可以实现数据的前后对比;与`RANK()`和`DENSE_RANK()`结合则可以进一步细化排序逻辑...

    分页存储过程,仅适用于Sql2005以上,使用 ROW_NUMBER()函数用于多表分页查询,可以分组查询

    SQL Server 2005 及其后续版本引入了 `ROW_NUMBER()` 函数,使得实现分页功能变得更加简单高效。本文将详细介绍一个基于 SQL Server 2005 的分页存储过程,该存储过程不仅支持多表分页查询,还能进行分组查询。 ###...

    row_number,根据多个字段过滤,partition by

    为了实现上述需求,可以采用SQL中的`ROW_NUMBER()`窗口函数配合`PARTITION BY`子句来完成。下面详细介绍这一过程: #### 2.1 `ROW_NUMBER()`函数概述 `ROW_NUMBER()`函数用于为每个分区内的行分配一个唯一的数字。...

    ROW_NUMBER、RANK、DENSE_RANK 和 NTILE

    MS SQL 2005 中的排名函数包括 ROW_NUMBER、RANK、DENSE_RANK 和 NTILE,这四个函数可以有效地分析数据并提供排序值。下面将详细介绍每个函数的用法和示例。 一、ROW_NUMBER 函数 ROW_NUMBER 函数返回结果集分区...

    SQL中row-number函数用法

    ### SQL中row_number函数详解与应用 #### 一、row_number函数概述 `row_number()` 是SQL中的一个重要窗口函数,用于为每一行分配一个唯一且连续的整数。这一功能在处理复杂的数据排序和筛选场景时非常有用。下面将...

    oracle rownum 的使用 和sqlserver有区别的!

    - 在 SQL Server 中,ROW_NUMBER() 函数与 Oracle 中的 ROWNUM 功能类似,但它们之间存在一些关键差异。 - **ROW_NUMBER()** 可以基于特定的排序规则为每行分配一个连续的数字,这使得它在处理有序数据时更为灵活...

    Mssql 增加排序列,分组排序与普通排序 ROW_NUMBER.docx

    在SQL Server中,`ROW_NUMBER()` 是一个窗口函数,它为查询结果集中的每一行提供一个唯一的整数。这个函数通常用于实现分页或者在排序数据时为每一行分配顺序号。在Mssql中,`ROW_NUMBER()` 可以与 `OVER` 子句一起...

    Row_number 分页存储过程

    在SQL Server中,可以使用`Row_number()` 函数结合`CTE(公共表表达式)`和`TOP`关键字来实现分页。以下是一个典型的分页查询示例: ```sql WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY some_column) AS...

    row_number

    `row_number()` 是 SQL 中的一个窗口函数,常用于为查询结果中的每一行分配一个唯一且连续的整数编号。这个函数通常与 `OVER()` 子句一起使用来定义编号规则。 #### 二、row_number() 的语法结构 `row_number()` ...

    SQL Server 2005中ROW_NUMBER()函数在存储过程分页中的应用.pdf

    在SQL Server 2005中,`ROW_NUMBER()`函数是一个非常重要的窗口函数,它在数据处理和查询优化方面发挥着关键作用,特别是在实现存储过程中的分页功能时。本文将深入探讨`ROW_NUMBER()`函数的工作原理,以及如何在...

Global site tag (gtag.js) - Google Analytics