热门文章
 
Transact_SQL索引
应用程序中的高级SQL注入
sql server数据转换
子查询
使用约束
case 的用法
生成测试数据 T-SQL系列
经典查询排序案例
获取排队顺序 T-SQL教案
查找不同时间段间的差异 T-
 推荐文章
 
join 方式
SQL Server中保存和
SELECT TOP N 问
SQL Server中的全文
sql server 由于登
SQL Server2005
怎样将Varbinary数据
MS SQL SERVER
数据分组
distinct id的取法
SQL Server安全防范
MD5算法的T-SQL实现
改变自增字段的初始值
sql server 数据恢
使用派生表
几个SQL日志有关的概念
 
你现在的位置:您现在的位置是: 中国ASP>>数据库>>sql server
数据分组

1、选前几条数据

select top 10 orderid,amt=unitprice*quantity
from ordredetails
order by amt desc
2.利用group by 子句对select命令所选数据分组。分组后可以显示出来
group by是除了不含汇总函数(sum,avg,count,min,max等以外的列)
select prod_id,sum(qty*unit_price) tot_amt
from sale_item
group by prod_id
order by tot_amt desc
3.group by 子句还可以加 with cube语句,加上with cube语句,其返回的数据除了和没有with cube语句一样外,,另外它会得到一些加总列。
select sup_id,prod_id ,sum(qty*unit_price),sum(qty) tot_amt
from sale_item
groupby sup_id,prod_id with cube
将有对应每个sup_id的加总列,每个prod_id 的加总列,和null,null全部的加总列
4.with cube语句换成with rollup ,则只返回最高层次的group列(最靠近group by的列的加总)
上面的例子,只返回sup_id的加总列,每个sup_id后有个加总列
5。使用grouping区分空值
cube操作生成的空值null带来一个问题,即如何区分cube操作生成的null值和实际数据中返回的null值。这个问题,可以用grouping函数解决。如果列中的值来自事实数据,则grouping函数返回0,如果列中的值是cube操作所生成的null,则返回1。在cube操作中,所生成的null代表全体值。可将select语句写成使用grouping函数将null替换为字符串all。
因为事实数据中的null表名数据值未知,所以select语句还可以用字符串unknow替代来自事实数据的null。
select productid,grouping(productid),orderid,grouping(orderid),sum(quantity)
from order
group by productid,orderid
with cube
order by productid,orderid
6.group by 子句经常会和having子句搭配,用来找出每个组别中满足指定条件的数据,以下命令由产品文件中找出代码重复者,也就是同一型产品有两家以上的供应商。
select prod_id,count(*) from stock
group by prod_id
having count(*)>1
order by prod_id

相关信息:

.Net下调用SqlServer2k存储过程
SQLServer分页查询通用存储过程
access升级到SQLServer如何调整字段类型及函数:JET SQL 和T-SQL中的同义词
Transact_SQL索引
应用程序中的高级SQL注入
sql server数据转换
子查询
使用约束
case 的用法

 

中国ASP技术 ASP.ORG.CN 版权所有 2004-2008