如何计算数据库中重复记录的数量?

时间:2012-03-29 11:31:47

标签: mysql sql levenshtein-distance

考虑以下“推文”表

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。

3 个答案:

答案 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分组