已经知道表users
year salary
------------------
---------------------
2000 1000
2001 2000
2002 3000
2003
4000
要求:显示查询结果
year salary
------------------
---------------------
2000 1000
2001 3000
2002 6000
2003
10000
即salary为以前年的工资的和;
我这里提供的答案有两种
第一种:
select b.year,sum(a.salary) as salary
from users
a,users b
where a.year<=b.year group by b.year
order by
b.year;
第二种:
select s1.year "year",(select sum(s2.salary) from users s2 where
s2.year<=s1.year) "salary" from users s1;
表className中有如下分类:
classID className
1 衣服
2 裤子
5
帽子
10 鞋子
表productInfo有如下记录:
productID productName parentID
clickNum
1
男士衣服 1 90
--衣服类别中这条记录的点击率最高
2
女士衣服 1
80
3
男士裤子 2
70
4
女士裤子 2 90
--裤子类别中这条记录点击率最高
5
男士帽子 5
15
6
女士帽子 5
30 --帽子类别中这条点击率最高
7
男士鞋子 10
65 --鞋子类别中这条点击率最高
8
女士鞋子 10 52
9
女士鞋子1 10 54
现在要求分别把衣服,裤子,帽子,鞋子这些类别中点击率最高的一条记录找出来,然后再降序排列,结果应如下:
productID productName
clickNum
1 男士衣服
90
4 女士裤子 90
7 男士鞋子 65
6 女士帽子 30
select a.productid, a.productname, a.clicknum
from productInfo a, ( select parentid, max(clicknum) clicknum from productInfo group by parentid) b
where a.parentid = b.parentid and a.clicknum = b.clicknum
order by a.clicknum desc;
(转载:)
/*
功能:
搜索类别表[className]中的每个类别下点击率最高的那条记录,然后将这些记录降序排列
作者: vivianhu
整理: kgdiwss
(我只是添加了注释以及重命名了一些变量)
日期:
2006-4-17
*/
/* 如果存在临时表tTable,则先将它删除 */
if exists
(
select * from dbo.sysobjects
where id = object_id(N'[dbo].[tTable]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1
)
drop table [dbo].[tTable]
GO
/* 创建临时表 */
create table
tTable
(
productid int,
productname varchar(10),
clicknum
int
)
/* 变量申明 */
declare @classID int
/* 定义游标 */
declare cursor_classID
CURSOR FOR
SELECT classID FROM className
/*
打开游标
@@FETCH_STATUS
返回被 FETCH
语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
0 表示 FETCH 语句成功。
*/
OPEN
cursor_classID
FETCH NEXT FROM cursor_classID INTO @classID
WHILE
@@FETCH_STATUS = 0
/* 搜索某一类别中点击率最高的一条记录 */
BEGIN
insert
into tTable
select top 1 productID,productName,clickNum from productInfo
where parentID = @classID
order by clickNum desc
FETCH NEXT FROM cursor_classID
INTO @classID
END
/* 关闭游标 */
CLOSE cursor_classID
/* 删除游标引用 */
DEALLOCATE cursor_classID
/* 对临时表中的记录根据点击率进行降序排列 */
select * from tTable
order by clickNum desc
/* 删除临时表 */
drop table tTable
分享到:
相关推荐
"Sql查询分析器"是一款专为SQLServer设计的实用工具,它使得用户可以直接与数据库进行交互,执行SQL查询,从而高效地管理和分析数据。这款工具的便捷之处在于,它是一个可执行的exe文件,无需安装,只需解压缩后直接...
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。 本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发...
《Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程...
当我们谈论“经典的SQL查询语句,将内容作为字段查询”时,我们通常是指在SQL中使用内容作为查询的一部分来检索特定数据。这样的查询对于数据分析师、数据库管理员以及任何需要从大量数据中提取信息的人来说至关重要...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威书籍。T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...
本书全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表...
《SQL Server 2005 技术内幕:T-SQL查询源码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中使用的SQL扩展版本,它在标准SQL的基础上增加...
可视化SQL查询语句生成器是一种高效且用户友好的工具,专为那些不熟悉或不习惯编写SQL代码的用户设计。这种工具通常具有图形用户界面(GUI),允许用户通过直观的界面来构建复杂的查询,而无需直接输入SQL命令。在...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。T-SQL是微软SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...
《Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询》是一部深入探讨SQL Server 2005数据库管理系统中Transact-SQL(T-SQL)查询技术的专业著作。本部分主要聚焦于如何高效、准确地在SQL Server 2005环境中...
在“在线SQL查询”这个场景中,ExtJS 被用来构建一个用户界面,允许用户在浏览器中直接执行SQL查询,这对于数据库管理或数据分析来说非常方便。 `Ext.ux.window.VisualSQLQueryBuilder` 是ExtJS的一个扩展组件,...
SQL查询分析器通常用于执行这些查询,它允许用户与数据库交互并执行各种数据库操作。 首先,让我们了解两个关键的系统视图:`syscolumns` 和 `sysobjects`。这两个视图在Microsoft SQL Server中提供,它们存储了...
SQL查询分离器是一种工具,主要用于帮助开发者和数据库管理员解析、理解和优化SQL查询语句。它在数据库管理和开发过程中起着至关重要的作用,因为高效的SQL查询是维持系统性能的关键。SQL查询分离器休闲庄版,正如其...
VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL...
最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...
本文将深入探讨如何在Kettle中实现动态SQL查询,这对于处理复杂的数据库操作和数据迁移至关重要。我们将讨论问号占位符和命名参数这两种方法,并分析它们的区别。 首先,让我们理解什么是动态SQL查询。在传统的SQL...
SQL查询是其核心功能之一,它利用SELECT语句来检索数据。 SQL查询的功能包括但不限于: 1. 数据筛选:使用WHERE子句对数据进行筛选,仅返回符合条件的数据记录。 2. 数据排序:使用ORDER BY子句对结果集进行排序,...
SQL查询分析器是数据库管理员和开发人员用于调试和优化SQL Server数据库中的SQL语句的强大工具。这个专用的SQL Server查询分析器集成了多种功能,帮助用户高效地处理SQL查询,提高数据库性能。以下是对这些文件及其...