在字母表列中列出不同的值,其中应从列表中删除仅具有RID 101的所有字母表.

RID Alphabet
100 A
101 B
102 B
101 C
104 D
101 D
106 E
102 F
108 C
108 A
104 E

输出列应为

Alphabet
A
E
F

因为A、B和C已经摆脱了101,应该被淘汰.

我该如何做到这一点呢? 我试过用有功能的Group By吗?哪里存在,但不为我工作?感谢你的帮助

推荐答案

尝尝这个

SELECT Alphabet FROM `mytable` WHERE Alphabet NOT IN (
  SELECT Alphabet FROM `mytable` WHERE RID = 101
)

根据您的新信息,您的解决方案可能会因为使用HAVING MAX(when case...)而成为性能杀手.但以Rating.rID为指数,下面的解决方案将非常有效:

Select Movie.title From Movie
  Left Join Rating on Rating.mID = Movie.mID
  Left Join Reviewer on Rating.rID = Reviewer.rID
  WHERE Movie.mID NOT IN (
    SELECT Rating.mID FROM Rating WHERE Rating.rID = 205
  )
GROUP BY Movie.mID

Sql相关问答推荐

在postgresql中使用来自另一个字段的日期名称作为JSONB查询中的关键字

如何解决Error:operator is not unique:unknown—unknown在一个动态SQL查询?""""

如何从上一个值减go 值

更新在两个或多个面中具有交点的面

retrofit AWS Athena中的JSON

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

SQL子查询返回多个值错误

在SQL中为两个日期之间的每个日期添加行

在Netezza SQL中将字符DataType转换为整型DataType

PostgreSQL-按距离阈值挤压相邻行的性能

如何使用jsonn_populate_record()插入到包含IDENTITY列的表中

当我返回 sql 列时,有没有办法只反转数字? ( hebrew )

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

带有数组输入参数的Snowflake UDF优化

根据行号将列转置为没有任何id或键列的行

使用对 nvarchar 列的多个 LIKE 操作优化 SQL 查询

String_Split 多列

SQL Server 查找存在于所有不同时期(或序列)中的条目

如何在 PL/SQL 中区分返回的 XML 值?

使用 SAVE TRANSACTION 时 BEGIN 和 COMMIT 语句的数量不匹配