SQL Server中的CASE和GROUP BY

用户名

这是我的桌子。

Price   Volume  Month
--------------------------
600    60   April
500    50   April
450    0    April
400    0    April
300    40   April
95     0    April
200    40   March
100    40   March
90     0    March
80     0    March
70     10   March
60     0    March

对于每个月,我需要在“交易量”列中选择前两个连续的零之前的所有行,该行按价格降序排列。例如,这是我想要得到的:

Price   Volume  Month   rn
--------------------------------
600      60     April   0
500      50     April   0
200      40     March   0
100      40     March   0

我知道如何完成而不按月分组(感谢stackoverflow.com链接)。

这是代码:

with 
flagged as (
  select price, 
     volume,
     case 
       when volume + lead(volume) over (order by price desc) = 0 then 1
       else 0
     end as rn, month
  from [AnalysisDatabase].[dbo].[tblLagExample]),
 counted as (
 select price, 
     volume, 
     sum(rn) over (order by price desc) as cn ,-- this is running sum
     rn, month
  from flagged)

select price, volume, cn, month, rn
from counted
 where cn = 0 and rn = 0
 order by price desc

有关如何按月分组的任何建议。

下午77-1

你快到了。您所需要的只是添加PARTITION BY month到您的OVER子句中。

这是SQL Fiddl e。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CASE和GROUP BY的SQL Server查询,字段无效?

来自分类Dev

使用CASE和GROUP BY的SQL Server查询,字段无效?

来自分类Dev

SELECT CASE SQL 中的 Group BY

来自分类Dev

SQL Server query with CASE and GROUP BY, field invalid?

来自分类Dev

SQL SERVER中的CASE子句

来自分类Dev

仅在 SQL Server Management Studio 中的 group by 语句中显示 case 语句的最大值

来自分类Dev

SQL Server Case语句和聚合功能

来自分类Dev

SQL Server CASE和IN where子句

来自分类Dev

避免使用 SQL 中的空行,其中 case when 和 group by 正在使用

来自分类Dev

使用SQL Server进行DISTINCT和GROUP BY

来自分类Dev

将 CASE 用于 SQL Server 和 Postgresql 中的类似枢轴的函数

来自分类Dev

SQL Server中的GROUP BY在复杂查询中

来自分类Dev

SQL Server 中的 CASE/EXISTS IN WHERE 子句

来自分类Dev

在总和中嵌套 Case 语句 - SQL Server

来自分类Dev

在 CASE SQL SERVER 中避免 NULL 值

来自分类Dev

SQL Server中的GROUP BY日期而不是datetime

来自分类Dev

在SQL Server中使用GROUP BY中的Quarter

来自分类Dev

SQL Server中的GROUP BY日期而不是datetime

来自分类Dev

SQL GROUP BY和SELECT中的FILTER

来自分类Dev

SQL 中 GROUP BY 和 STUFF 的替代方案

来自分类Dev

SUM with CASE 计算 SQL GROUP BY 中的重复行

来自分类Dev

SQL Server / SSRS 2005 CASE参数和NULL的评估

来自分类Dev

在需要条件的上下文中在“和”附近指定的非布尔类型的表达式。在CASE的SQL Server中

来自分类Dev

使用SQL Server,GROUP BY

来自分类Dev

SQL Server Group By 乘法

来自分类Dev

GROUP BY - SQL Server

来自分类Dev

SQL Server 与 GROUP BY 的连接

来自分类Dev

SQL group by case 语句崩溃

来自分类Dev

SQL Server-基于条件的SUM()和Group()记录

Related 相关文章

热门标签

归档