簡體   English   中英

SQL 查詢以獲取具有多個教練的 id

[英]SQL query to fetch id having multiple coaches

Id  name    type
-------------------
1   A       coach
1   B       coach
1   C       client
1   D       client
2   E       coach
2   F       client
2   G       client

我想編寫一個查詢來查找不止一次具有 coach 的 ID,但是 output 應該包含具有 client 值的行,而不管其計數如何。

我嘗試使用子查詢,但無法獲得所需的結果。

嘗試了子查詢,還嘗試將值指定為教練,但在那種情況下沒有獲得具有客戶端值的行。

如果有的話,我想要 id 和客戶一起有不止一次的教練

條件sum() over()可能很適合這里。

例子

Declare @YourTable Table ([Id] int,[name] varchar(50),[type] varchar(50))
Insert Into @YourTable Values 
 (1,'A','coach')
,(1,'B','coach')
,(1,'C','client')
,(1,'D','client')
,(2,'E','coach')
,(2,'F','client')
,(2,'G','client')
 
;with cte as (
Select * 
      ,Coaches = sum( case when [type]='Coach' then 1 end) over (partition by ID)
 From @YourTable
) 
Select * from cte where Coaches>1

結果

Id  name    type    Coaches
1   A       coach   2
1   B       coach   2
1   C       client  2
1   D       client  2

或者另一種方法

Select A.*
 From  @YourTable A
 Join ( Select id from @YourTable where [type]='Coach' group by id having count(*)>1 ) B
   on A.ID=B.ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM