如何在SQL中查询字段内容出现次数,急!

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:39:54
请教各位大侠,已知表A中有字段ID(int),REMARK(char)字段,ID为表主键。现在我想统计REMARK字段中出现的报警次数。
表A内容为
ID REMARK
1 下级水表磁干扰
2 交流电异常,下级水表磁干扰
3 交流电异常,压力偏低
4 交流电异常,压力偏高
5 设备被盗
6 电池电压:欠压,设备被盗,交流电异常
7 设备被盗,交流电异常
现在要统计报警次数
如 交流电异常(5)次 设备被盗 (3)次 磁干扰(2)次
压力异常 (2)次
我原来的查询方法是
SELECT Remark, COUNT(*) FROM A WHERE (Remark LIKE '%设备被盗%')
GROUP BY Remark
但是这个无法得到具体的次数,如何才能得到准确次数呢?现在对这个问题很无奈!
分数不多,请见谅~~

<%
dim db,jldyc,sbbd,cgr
db="1.mdb"
set conn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db)
conn.open connstr
jldyc=conn.execute("select count(id) from b where Remark LIKE '%交流电异常%'")(0)
sbbd=conn.execute("select count(id) from b where Remark LIKE '%设备被盗%'")(0)
cgr=conn.execute("select count(id) from b where Remark LIKE '%磁干扰%'")(0)
response.write("交流电异常("&jldyc&")次<br>设备被盗("&sbbd&")次<br>磁干扰("&cgr&")次")
%>

我自己写好并测试了的,完全正常。我不知道你为什么要在后面加GROUP BY Remark。你加了GROUP BY Remark的话,相同的remark只会统计一次。你这种情况,直接count(id)就OK了。不用想那么复杂。

表设计有问题.一个表中存放多组数据是不对.重新设计

SELECT Remark, COUNT(*) FROM A WHERE CHARINDEX(Remark ,'设备被盗') > 0
GROUP BY Remark