oracle里面要获取每个分组里面的topN可以采用:
select *
from (select emp_id, name, occupation,
rank() over ( partition by occupation order by emp_id) rank
from employee)
where rank <= 3
select * from
(select emp_id, name, occupation,rank() over (
partition by occupation order by emp_id,RowNum) rank
from employee)
where rank <= 3
mysql:分组之后取topN的sql:
Here’s another form of the solution without subquery that also resolves matching ratings by using the primary key:
DROP DATABASE IF EXISTS topn;
CREATE DATABASE topn;
USE topn;
CREATE TABLE theTable (
pKey int PRIMARY KEY
, groupId int
, rating int
);
INSERT INTO theTable (
pKey
, groupId
, rating
) VALUES
( 1, 1, 55 )
, ( 2, 1, 53 )
, ( 3, 1, 51 )
, ( 4, 1, 59 )
, ( 5, 1, 58 )
, ( 6, 1, 58 )
, ( 7, 1, 53 )
, ( 8, 1, 55 )
, ( 9, 1, 55 )
, ( 10, 1, 53 )
, ( 11, 2, 52 )
, ( 12, 2, 53 )
, ( 13, 2, 54 )
, ( 14, 2, 59 )
, ( 15, 2, 58 )
, ( 16, 2, 57 )
, ( 17, 2, 56 )
;
SELECT t1.pKey
, t1.rating
, t1.groupId
, COUNT(t2.pKey) AS cnt
FROM theTable AS t1
LEFT JOIN theTable AS t2
ON (t1.rating, t1.pKey) <= (t2.rating, t2.pKey)
AND t1.groupId = t2.groupId
GROUP BY t1.pKey
, t1.rating
, t1.groupId
HAVING cnt <= 5
ORDER BY t1.groupId, cnt
;
查询结果:
参考:http://www.blogjava.net/pengpenglin/archive/2008/06/27/211019.html
http://thenoyes.com/littlenoise/?p=36
- 大小: 48.3 KB
分享到:
相关推荐
本工具“Oracle/MySQL生成mybatis文件工具”旨在为开发者提供便利,自动根据数据库中的表结构生成相应的MyBatis映射文件(Mapper XML)以及实体类(Entity Java),从而提高开发效率,减少手动编写SQL和Java代码的...
【标题】"jsp+oracle/mysql源码"涉及的是在Web开发中使用Java Server Pages(JSP)技术结合Oracle或MySQL数据库进行数据管理的应用实例。这是一个常见的组合,因为JSP是用于构建动态网页的Java技术,而Oracle和MySQL...
我做的是 spring + quartz+ mysql and oracle 持久层 ibatis and hibernate 项目用eclipse 导入 不同的数据库 请在数据库运行不同的SQL 脚本 用hibernate 时注意 是什么数据库 hibernate.properties 文件第一二行...
python+Django数据库监控平台 Linux/Oracle/MySQL/Redis基础监控+性能监控
Android连接MS、Oracle/Mysql数据库例子
"SQL/Oracle/MySQL Driver整合"这个主题涉及到如何在不同环境中使用相应的数据库驱动,以便应用程序可以与这些数据库进行通信。本文将详细介绍这三种数据库的驱动(Driver)以及它们的整合过程。 1. **SQL**:SQL...
标题"Oracle/Mysql数据库连接jar包全"指的是提供了连接Oracle和MySQL数据库所需的全套Java类库。这些jar包是Java应用程序与数据库进行通信的桥梁,使得开发者能够通过编写Java代码执行SQL语句,实现数据的增删改查...
简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/oracle/PostgreSQL/TIDB/CacheDB 数据库。简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/oracle/PostgreSQL/TIDB/CacheDB 数据库。...
本资源"连接oracle/mysql/sqlserver样例及各数据库对应的jar驱动包"提供了一个全面的工具集,帮助开发者轻松测试Oracle、MySQL和SQL Server这三种主流数据库的连接。 首先,Oracle数据库是全球最大的企业级数据库...
标题中的“jdbc连接数据库:oracle/derby/mysql”是指使用Java Database Connectivity (JDBC) API来与三种不同的数据库系统——Oracle、Apache Derby和MySQL进行交互。JDBC是Java平台的标准接口,它允许Java应用程序...
《程序逻辑抽取器》-PLEA支持c/c++/esqlc,数据库支持Oracle/informix/mysql。 通过对源码的抽取,将函数,存储过程,以及它们的调用关系和数据操作形式以报告的形式呈现给使用者。 通过对函数、变量、宏、类型成员...
数据库驱动大全这个资源包含了SQL Server、Oracle以及MySQL等主流数据库系统的ODBC(Open Database Connectivity)驱动程序。ODBC是微软提出的一种标准接口,允许应用程序通过统一的方式与各种不同类型的数据库进行...
这里提到的"Oracle/Mysql/Mongo/Sqlserver数据库驱动集合"是一个包含这四种数据库的驱动程序的压缩包,主要用于Java开发环境中与这些数据库进行连接。 首先,Oracle数据库是甲骨文公司提供的企业级关系型数据库,...
标题 "dbeaver-plugins-oracle/ck/mysql" 暗示了这是一个与数据库管理相关的资源,主要涉及Dbeaver数据管理工具以及Oracle、MySQL和ClickHouse这三种数据库系统。Dbeaver是一款多平台的数据库管理工具,它支持多种...
工作中可能需要连接不同的资料库,Navicat Premium是个好工具可以连oracle/sqlserver/mysql ……等资料库,但Navicat Premium比较大,这里共享的是更轻量级的连接工具SqlDbx,该工具同样可以连接oracle/sqlserver/...
在Java编程中,连接Oracle和MySQL数据库是常见的需求,这对于数据操作、数据分析或者构建Web应用程序至关重要。本示例将向你展示如何使用Java API来实现这两个数据库的连接,并且提供了相应的数据库驱动包。 首先,...
http://127.0.0.1:8080/Oracle/oracle9_thin.jsp //thin模式 http://127.0.0.1:8080/Oracle/oracle9_oci.jsp //OCI模式 4.连接MySQL http://127.0.0.1:8080/MySQL/mysql.jsp
Oracle、MySQL和Microsoft SQL Server是三种广泛使用的数据库管理系统,它们各自都有对应的JDBC驱动。 1. Oracle JDBC驱动: Oracle JDBC驱动,也称为 Thin Driver,是一种纯Java实现,无需Oracle客户端软件即可...
最简单,最实用的数据库文档生成工具,支持SqlServer/MySQL/Oracle/PostgreSQL/DB2/SQLite数据库。