我们正在使用 SQL 创建一个类似 Twitter 的数据库。我在为以下内容创建存储过程时遇到问题:
允许用户在他/她的推文中检索前 2 个最常用的哈希标签。
更新:这是我的存储过程
create or replace
procedure TOP_2_FREQUENT_HASHTAGS is
first_hashtag varchar2(255);
second_hashtag varchar2(255);
begin
with TopTwoHashtags
AS (
SELECT
t.userID,
th.HASHTAGID,
ROW_NUMBER() OVER (ORDER BY COUNT(th.TWEETID) DESC) r
FROM
Tweet_Hashtag th
INNER JOIN Tweets t
ON th.TWEETID = t.TWEETID
WHERE
userID = t.userid
GROUP BY
t.userID,
th.HASHTAGID
)
SELECT
ht.TOPIC
into first_hashtag
FROM
Hashtag ht
INNER JOIN TopTwoHashtags tt
ON ht.HASHTAGID = tt.HASHTAGID
WHERE
r < 3;
dbms_output.put_line('Top 2 most frequent hashtags: '|| first_hashtag);
exception
when no_data_found then
dbms_output.put_line('This user does not exist');
return;
end;
我们有以下表格:
- 行政
- 跟随
井号
- 哈希标签
- 话题
Tweet_Hashtag
- TWEETHASHID
- 推文
- 哈希标签
- 推文
- 推文
- 用户身份
- 推特日期
- 推文时间
- 推文
- 推特用户
这是我们搜索推文的存储过程:
create or replace
procedure search_tweets(ttwitext in tweets.tweettext%type, tuserID in tweets.userid%type )
is
twit_user tweets.userid%type;
twit_id tweets.tweetid%type;
twit_text tweets.tweettext%type;
begin
select tweettext into twit_text from tweets where userid = tuserid and tweettext like '%' ||ttwitext || '%';
if twit_text is not null then
dbms_output.put_line(twit_text);
end if;
exception
when no_data_found then
dbms_output.put_line('kersplat' );
return;
end;