Sql 如何根据特定条件选择行

Sql 如何根据特定条件选择行,sql,r,Sql,R,我正在尝试根据特定条件选择特定行。希望得到相对于第一列的z以下的所有值,并排除顶部的值。我尝试使用filter和GroupBy,但它不能正常工作,下面提供了输入和预期输出 Input abc x abc y abc z abc g abc t pqr x pqr z pqr y cvb z cvb x cvb y 预期产量 abc g abc t pqr y cvb x cvb y

我正在尝试根据特定条件选择特定行。希望得到相对于第一列的z以下的所有值,并排除顶部的值。我尝试使用filter和GroupBy,但它不能正常工作,下面提供了输入和预期输出

Input    
abc  x  
abc  y   
abc  z  
abc  g  
abc  t     
pqr  x  
pqr  z  
pqr  y  
cvb  z  
cvb  x  
cvb  y  
预期产量

abc  g  
abc  t  
pqr  y  
cvb  x  
cvb  y  

这里有一个可能的解决方案,通过
dplyr

library(tidyverse)

df %>% 
 group_by(a) %>% 
 mutate(new = row_number()) %>% 
 filter(new > new[b == 'z']) %>% 
 select(-new)
这就给了,


你能分享一下预期的结果吗?请使用
dput
共享您的数据,以便我们可以直接工作。我编写的“输出”是我试图实现的预期输出。请使用
dput
共享您的输入数据集好吗?输入数据是我在图中提供的数据。。我不知道如何共享输入数据集。真的很抱歉,因为我不经常在这里发布。如果你能提出一个解决方案,那将是一个很大的帮助
# A tibble: 5 x 2
# Groups:   a [3]
   a     b    
 <chr> <chr>
1 a     g    
2 a     t    
3 b     y    
4 c     x    
5 c     y    
structure(list(a = c("a", "a", "a", "a", "a", "b", "b", "b", 
"c", "c", "c"), b = c("x", "y", "z", "g", "t", "x", "z", "y", 
"z", "x", "y")), row.names = c(NA, -11L), class = "data.frame")