SQL查询-按计数缩小范围

SQL查询-按计数缩小范围,sql,Sql,我有下表,需要把范围缩小到书籍数量高于DVD数量的名字 有什么想法吗?我的问题是有些人只有一个条目,然后删除其中两个DVD高于书籍的条目。这里有一种方法: select t.name from t where t.type = 'DVD' and t.count > (select t2.count from t t2 where t2.name = t.name and t2.type = 'Book'

我有下表,需要把范围缩小到书籍数量高于DVD数量的名字

有什么想法吗?我的问题是有些人只有一个条目,然后删除其中两个DVD高于书籍的条目。

这里有一种方法:

select t.name
from t
where t.type = 'DVD' and
      t.count > (select t2.count
                 from t t2
                 where t2.name = t.name and t2.type = 'Book'
                );
另一种方法是使用聚合和具有:

select t.name
from t
group by t.name
having max(case when t.type = 'DVD' then count end) > max(case when t.type = 'Book' then count end);

我删除了不兼容的数据库标记。请用您真正使用的数据库进行标记。只有一种类型的数据库应该如何处理?它们是否可以被视为另一种类型的零?还是应该将其排除在外?如果这两种类型的计数相等呢?是否包括此类客户?