CREATE function [dbo].[GetCharIndexNum](@findstring varchar(max),@string varchar(max))
returns int
AS
BEGIN
declare @location int , --要找的字符位置
@num int --要找的字符出现的次数
set @num =0
set @location = charindex (@findstring,@string)
while @location >0 ---字符串中存在要找的字符
begin
set @num =@num +1
set @string =substring(@string,@location+1,len(@string))
set @location = charindex (@findstring,@string)
end
return @num
END
--举个例子调用这个标量值函数 select [dbo].[GetCharIndexNum]('5','abc5ab5')
返回值2,5这个字符出现了2次
SELECT name,mun,COUNT(1) cnt FROM table_baiduGROUP BY name,mun HAVING name IN('Y100','X100')
一、你的意思是这个意思吗:select count(*) from 表 where 用户id = ? and 商品id = ?
二、还是根据用户id查询出用户对哪些商品发生了行为,然后再统计对每一个商品的行为:
1、统计用户发生行为的商品集合:
select * from 表 where 用户id = ?
2、遍历商品集合,然后统计用户对每个商品的行为次数:
select count(*) from 表 where 用户id = ? and 商品id = ?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)