SQL:查找用户使用的单词频率
我有一个列ID,聊天室ID,用户名,月,日,年,状态表。 [我的桌子][1][1]: 状态包含用户发出的tweet。现在,我试图找到状态列中按用户名分组的单词频率,也就是说,我需要创建一个新表,显示用户使用特定单词的次数。该表需要有username、word和frequency列。 我使用下面的查询来查找status列中的词频SQL:查找用户使用的单词频率,sql,sql-server,frequency,Sql,Sql Server,Frequency,我有一个列ID,聊天室ID,用户名,月,日,年,状态表。 [我的桌子][1][1]: 状态包含用户发出的tweet。现在,我试图找到状态列中按用户名分组的单词频率,也就是说,我需要创建一个新表,显示用户使用特定单词的次数。该表需要有username、word和frequency列。 我使用下面的查询来查找status列中的词频 select sep.col AS WORD, count(*) as Frequency from ( select * from ( select value =
select sep.col AS WORD, count(*) as Frequency from
(
select * from
(
select value = Lower
(RTrim
(LTrim
(convert(VARCHAR(MAX), STATUS))
)) FROM My_table
) easyValues
Where value <> ''
) actualValues
Cross Apply dbo.SeparateValues(value, ' ') sep
Group By USERNAME,sep.col
Order By Count(*) Desc
我从网上得到的。
但我无法找到用户使用该词的次数。我是SQL新手,有人能给我指出一个正确的方向吗?任何帮助都将不胜感激。谢谢大家! 这是一个select,您正在谈论创建一个表。我想你正在寻找选择进入。对不起,我前面的问题写得很模糊,你能帮助我正确地完成上面的任务吗?博士后?神谕DB2?Firebird?SQL Server管理工作室
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Function [dbo].[SeparateValues]
(
@data VARCHAR(MAX),
@delimiter VARCHAR(10)
)
RETURNS
@tbldata TABLE(col VARCHAR(MAX))
As
--Declare @data VARCHAR(MAX) ,@delimiter VARCHAR(10)
--Declare @tbldata TABLE(col VARCHAR(10))
--Set @data = 'hello,how,are,you?,234234'
--Set @delimiter = ','
--DECLARE @tbl TABLE(col VARCHAR(10))
Begin
DECLARE @pos INT
DECLARE @prevpos INT
SET @pos = 1
SET @prevpos = 0
WHILE @pos > 0
BEGIN
SET @pos = CHARINDEX(@delimiter, @data, @prevpos+1)
if @pos > 0
INSERT INTO @tbldata(col) VALUES(LTRIM(RTRIM(SUBSTRING(@data, @prevpos+1, @pos-@prevpos-1))))
else
INSERT INTO @tbldata(col) VALUES(LTRIM(RTRIM(SUBSTRING(@data, @prevpos+1, len(@data)-@prevpos))))
SET @prevpos = @pos
End
RETURN
END