考虑以下“推文”表
tweet_id user_id text
-----------------------------------------
1 1 look at my tweet
2 1 look at my tweet
3 1 a very different tweet
4 1 look at my tweet
5 1 look at my tweets
6 2 a cool tweet
7 2 this is my tweet
8 1 hello
9 1 hello
对于每个用户,我想计算重复推文的数量。在上面的示例中,user_id 1总共有5条推文,其中2条是唯一的(tweet_id 3和5),3条是重复的(1,2和4)。因此,用户1的查询结果应为“3”。
[编辑] 看看user_id 1.推文“看我的推文”出现3次,推文“你好”2次。然后,重复推文的总数为3 + 2 = 5。
答案 0 :(得分:3)
对于第一部分,您可以使用以下查询
select user_id, sum(count)
from
(
select user_id, text, count(tweet_id) count
from tweets
group by
user_id, text
having count(tweet_id) > 1
) t
group by user_id
内部查询查找多次出现的所有用户和推文。外部查询为每个用户
添加重复值答案 1 :(得分:1)
试试这个:
Select count(text)-count(distinct text) from tweets where user_id=1
答案 2 :(得分:0)
select count(*) as count, text from table group by text order by user_id desc;
然后,您需要一个服务器端功能来按user_id分组