SQL 计算行上给定复合条件的值的数量

标签 sql count

我有一个表格如下:


User ID  Service
1        2
1        3
2        1
2        3
3        5
3        3
4        3
5        2

如何构造一个查询来计算拥有 3 项服务和至少一项其他服务的所有用户 ID?

在上表中,我感兴趣的查询将返回 3,因为用户 ID 1、2 和 3 拥有服务 3 以及至少一项其他服务。

谢谢!

最佳答案

在 MS SQL 中:

select count(*)
from UserService
where 
    ServiceId = 3 and
    UserId in (select UserId from UserService where ServiceId != 3)

关于SQL 计算行上给定复合条件的值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6159153/

相关文章:

mysql - 是否有任何 mysql/Oracle 函数可以提供增量编号。基于另一列相似值的一列?

mysql - 使用sql的预订冲突

sql - 发生冲突时,如果 PostgreSQL 中的 json 值不同则更新?

sql - 是否有可能(如何?)从 "after update"触发器返回旧值

mysql - SQL如何在同一个表上使用多个连接

mysql count(当条件1然后字段1、字段2、字段3结束时不同的情况)作为结果不允许case语句中存在多个字段

MySQL Avg Count With Where 和 Group By

mysql - 从 MySQL 中的连接表中查询特定的元字段

python - 如何计算 Pandas 中每个唯一值的出现次数

c# - De Bruijn 算法二进制数字计数 64 位 C#