急救!!sql的group by分组如何去除having条件count(name>1)中不符合条件的name,使其不被统计。
如:一条记录状态位以为0,表示这条记录已过期不能使用了,可是数据库中还占着一条记录,在使用count()统计时这条记录仍能被统计在内,如何才能把它去除(每条记录有一个状态...
如:一条记录状态位以为0,表示这条记录已过期不能使用了,可是数据库中还占着一条记录,在使用count()统计时这条记录仍能被统计在内,如何才能把它去除(每条记录有一个状态位status标记记录是否有用)
FROM CustomerInfo AS tb WHERE tb.status != '0' AND tb.customerName IN(SELECT customerName FROM CustomerInfo GROUP BY customerName HAVING COUNT(customerName)>1)
为了查找重名的用户 展开
FROM CustomerInfo AS tb WHERE tb.status != '0' AND tb.customerName IN(SELECT customerName FROM CustomerInfo GROUP BY customerName HAVING COUNT(customerName)>1)
为了查找重名的用户 展开
展开全部
你的意思是不是有个字段是状态位,然后状态为0的在统计的时候不做统计,是吗,如果是这样的话,你直接给后面价格where条件去掉状态是0就不就行了,不知道理解的对不对
追问
语句是这样的FROM CustomerInfo AS tb WHERE tb.status != '0' AND tb.customerName
IN(SELECT customerName FROM CustomerInfo GROUP BY customerName HAVING
COUNT(customerName)>1)
追答
为什么后面跟两个条件,不是说status不等于0就行了吗直接前面统计就行了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你那个group by 后面的东西要怎么弄,没看懂,不行就用一个笨的方法,肯定好用
就是 声明一个临时表
declare @temp table(name, ...)
insert into @temp
select * from table1
where status <> 0
然后基于这个@temp 再做
就是 声明一个临时表
declare @temp table(name, ...)
insert into @temp
select * from table1
where status <> 0
然后基于这个@temp 再做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加个where 条件不行么,where status <> 0
如果不行的话,就写子查询,
先筛选where status <> 0
再group by
如果不行的话,就写子查询,
先筛选where status <> 0
再group by
追问
使用having后还能使用where吗?
追答
在group by 之前用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
where 条件中加上 status != 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询