我有一个表“users”,它有多列,其中“status”列有多个值,如1,0,3,2,4。有一个列“user_id”,它不包含唯一值,因为这是另一个名为“user_master”的表的外键。
所以在“users”表中我们有一个用户的多个值。
所以,这是我的实际查询是我想写一个sql查询来查找用户只有一个条目“用户”具有特定的状态值。
例如我想获取status = 2的所有这些用户,并且他们在表中的条目不超过1.就像用户在表中有多个状态为2,1,4的条目一样,不应该在查询中返回。
它应该产生那些在表中只有一个条目并且状态= 2
的用户答案 0 :(得分:1)
那一定是你用的:
Select count(u.user_id) AS cnt, u.*
from user u
where u.status = 2
group by u.user_id, u.status
having cnt = 1;
答案 1 :(得分:0)
WITH tmp AS(
SELECT Stud_Id,COUNT(*) AS 'Count' FROM Student_tbl GROUP BY Stud_Id
)
SELECT * FROM tmp WHERE Count = 1 AND Status = 2
您必须在GROUP BY子句中添加要在SELECT子句中使用的字段。
答案 2 :(得分:0)
我已经研究过并找到答案。
查询就是这样。
select count(id) as cnt,
user_id,status from users
group by user_id
having cnt < 2 and status=2
首先,它会将数量少于2的东西分组,然后检查状态。