Tsql 按/超过分区
需要识别每个成员在团队字段中出现“a”的情况以及发生日期(作为一个组)。数据示例如下所示:Tsql 按/超过分区,tsql,Tsql,需要识别每个成员在团队字段中出现“a”的情况以及发生日期(作为一个组)。数据示例如下所示: **member & date**| **Team** a010112| a a010112| b a010112| c a010112|
**member & date**| **Team**
a010112| a
a010112| b
a010112| c
a010112| d
b010112| b
b010112| b
c010112| a
c010112| b
c010112| c
预期结果如下:
**member & date| **team**| **Occurrence of 'a' per member & date**
a010112| a| yes
a010112| b| yes
a010112| c| yes
a010112| d| yes
b010112| b| no
b010112| b| no
c010112| a| yes
c010112| b| yes
c010112| c| yes
计算字段-每个成员和日期分组出现的“a”是通过case语句/分区by/over从数据仓库查询得到的计算字段。是否可以为所需的语法提供一些帮助
谢谢,试试这个
Declare @t Table ([Member and Date] Varchar(50), Team Varchar(10))
Insert Into @t Values
('a010112','a'),('a010112','b'),('a010112','c'),('a010112','d'),
('b010112','b'),('b010112','b'),
('c010112','a'),('c010112','b'),('c010112','c')
SELECT
x.[Member and Date]
,x.[Team]
,[Occurrence of 'a' per member & date] = CASE WHEN y.[Member and Date] IS NULL THEN 'No' ELSE 'Yes' END
From @t x
Left Join(Select Distinct [Member and Date]
From @t Where Team = 'a')y
On x.[Member and Date] = y.[Member and Date]
如果团队='a'然后是(按成员和日期划分)结束,则其他“否”结束。