over分组之后,想给不同的group编上号
使用的sql如下:
SELECT BusinessEntityID, TerritoryID
,DATEPART(yy,ModifiedDate) AS SalesYear
,CONVERT(varchar(20),SalesYTD,1) AS SalesYTD
,CONVERT(varchar(20),AVG(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS MovingAvg
,CONVERT(varchar(20),SUM(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS CumulativeTotal
FROM Sales.SalesPerson
WHERE TerritoryID IS NULL OR TerritoryID < 5
ORDER BY TerritoryID,SalesYear;
生成的效果如下:

这个已经实现。
那么现在我想在最前边加一个列groupNumber,这个列根据TerritoryID 来显示,也就是TerritoryID为Null的,groupNumber就为1;TerritoryID为1的,groupNumber就为2...最后的效果图如下:

这个如何实现呢?在线等!!!
SELECT BusinessEntityID, TerritoryID
,DATEPART(yy,ModifiedDate) AS SalesYear
,CONVERT(varchar(20),SalesYTD,1) AS SalesYTD
,CONVERT(varchar(20),AVG(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS MovingAvg
,CONVERT(varchar(20),SUM(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS CumulativeTotal
FROM Sales.SalesPerson
WHERE TerritoryID IS NULL OR TerritoryID < 5
ORDER BY TerritoryID,SalesYear;
生成的效果如下:

这个已经实现。
那么现在我想在最前边加一个列groupNumber,这个列根据TerritoryID 来显示,也就是TerritoryID为Null的,groupNumber就为1;TerritoryID为1的,groupNumber就为2...最后的效果图如下:

这个如何实现呢?在线等!!!
...全文
相关推荐
MYSQL如何自动为查询数据的结果编上序号详解
drug_productor FROM ts_drug a GROUP BY drug_productor) AS '分组后的数据', (SELECT @y:=0) AS '初始化变量';```在这个例子中
MySql Group By对多个字段进行分组的实现方法
接下来,如果我们想知道每门课程每个学期的选课人数,可以使用两个字段进行分组:```sqlSELECT Subject, Semester, Count(*)FROM Subject_SelectionGROUP
mysql group by 对多个字段进行分组操作
**去重**:如果想去除重复行,可以使用DISTINCT关键字,但它不与GROUP BY一起使用。对于去重和分组,可能需要结合使用子查询或UNION ALL。5.
Oracle中分组查询group by用法规则详解
**多列分组**: 可以使用多个列进行分组,例如: ```sql SELECT deptno, job, COUNT(*) FROM emp GROUP BY deptno, job; ``` 这将返回每个部门和职位的员工数量
基于mysql实现group by取各分组最新一条数据
"这篇文章主要介绍了如何在MySQL中实现group by操作来获取各分组的最新一条数据,提供了三种不同的实现方式,并对每种方式进行了简要的解释和讨论。"在SQL查询中,通常`GROUP BY`


应用实例
