sqlserver中groupby的几种用法_phoebe sqlserver like的用法

1、最常用的就是这种语法,如下:
Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice) FROMdbo.Products Where UnitPrice > 30GROUP BY CategoryIDORDER BY CategoryID DESC
这个语句查询出,所有产品分类的产品平均单价,单价计数。并且单价在 30 以上的记录。
2、再看看这种语法,如下:
Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCTUnitPrice) FROM dbo.Products Where UnitPrice >30GROUP BY CategoryID ORDER BY CategoryID DESC
使用 DISTINCT 的时候,将会去除重复的价格平均单价。
3、如果希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:Select CategoryID, SUM(UnitPrice)AS SumPriceFROM dbo.ProductsGROUP BY CategoryIDHAVINGSUM(UnitPrice) > 300HAVING 与 Where 语句类似,Where是在分类之前过滤,而 HAVING 是在分类之后过滤。它和 Where 一样使用 AND、OR、NOT、LIKE组合使用。
4、如果希望再在分类统计中,添加汇总行,可以使用以下语句:
Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS'Grouping'FROM dbo.ProductsGROUP BY CategoryID WITH ROLLUP
Grouping 这一列用于标识出哪一行是汇总行。它使用 ROLLUP 操作添加汇总行。
5、如果使用 WITH CUBE 将会产生一个多维分类数据集,如下:
Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPriceFROMdbo.ProductsGROUP BY CategoryID, SupplierID WITH CUBE
它会产生一个交叉表,产生所有可能的组合汇总。
6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下:
Select CASE WHEN (GROUPING(SupplierID) = 1) THEN'-1'ELSESupplierIDEND ASSupplierID,SUM(UnitPrice) AS QtySumFROM dbo.ProductsGROUP BY SupplierID WITHCUBE它首先检查当前行是否为汇总行,如果是就可以设置一个值,这里设置为 '-1' 。
5、group by 后面有两个列来控制分组
select 职工号 ,count(*) as 总数 from 订购单
group by 职工号 ,供应商号
sqlserver中groupby的几种用法_phoebe sqlserver like的用法
group by 后面有两个列来控制分组顺序是,先按职工号进行分组,然后再看供应商号,如果此时供应商号也相同时,这两条记录才是一组
6、group by 分组条件的限制
select 职工.仓库号, 城市
from 职工,仓库
where 仓库.仓库号=职工.仓库号
group by 仓库.仓库号 意图是想突破这个分组条件的限制,想把列扩展一些,失败!!!主要是想分组后,再去和别的关系去连接,以使用到其他关系的字段,但失败!!!!!
分析原因:假如以上的操作可以成功的话,如果是以一个"不可能为主键列为分组的条件,如性别"得到结果,再去和其他的关系去联系,存在1:n的关系

//////////////////////////////////////////////////////////////////////////////////////////////////////

select 仓库号,城市 from 仓库
where 仓库号 in(select 仓库号
from 职工
group by 仓库号 此时依然无法摆脱这个分组的限制
)

////////////////////////////////////////////////////////////////////////////////////////

select 职工.仓库号,城市,count(*) from 职工, 仓库
where 职工.仓库号=仓库.仓库号
group by 职工.仓库号,仓库.城市 为这个子句添加一个列,就可以去投影了!!!!这样就实现了以上的想法


  

爱华网本文地址 » http://www.413yy.cn/a/25101010/24830.html

更多阅读

强势股高位放量的几种判断 高位放量

强势股高位放量的几种判断成交量是股票市场最重要的分析指标之一,任何不考虑成交量的分析,成功率往往也不高。成交量代表了投资者参与的意愿,很大的成家量即可以看作是卖盘意愿很强,也可以看作是买盘意愿很强,从传统的技术分析方法而言,

打开网页不是全屏的几种解决办法 网页重定向的解决办法

打开网页不是全屏的几种解决办法上网时经常会遇到这样的现象,就是打开的网页不是全屏,需要点击最大化才全屏显示,但关闭网页后下一次打开时又不是全屏,又要点击最大化,很是烦人。这里提供解决这个问题的常用办法,遇到这种问题的可

兰花植料的几种配方 单用植金石种兰可以吗

兰花植料的几种配方按体积比例:①有土栽培植料的复配。第一个配方:50%-60%土类植料(30%腐殖土或砂壤土,15%塘泥或泥炭土,5%“气沙土”);40%-50%“仙土”或人造颗粒土。第二个配方:60%土类植料;25%有机植料;15%无机类植料。第三个配方:50%谷皮

华美冰柜压缩机不启动故障后的几种表现 冰柜压缩机不工作

华美冰柜压缩机不启动故障后的几种表现(1)电冰柜不启动:电冰柜通电后,不能启动,手摸压缩机外壳,也无任何振动感觉。针对这种情况,应首先判断是电冰柜本身的故障,还是由外界因素引起的故障。外界因素有电源保险丝被烧断、电源插头与插座接

声明:《sqlserver中groupby的几种用法_phoebe sqlserver like的用法》为网友夕阳狠羙分享!如侵犯到您的合法权益请联系我们删除