您好我是SQL的新手,我试图在这里和Tutorial网站上搜索,但不知何故无法找到解决方案。我的问题其实很简单。 我有3个表:推文,用户, bon_results 。
为了得到我的最终.csv-data
,我需要在表格中添加一些值'用户'。但是我需要先通过函数创建这些值。我需要执行以下操作:每条推文都有一个favorite_count。我需要将它和SUM BY用户进行汇总,例如:
SELECT user, count(favorite_count) FROM tweets GROUP BY user
要点是我需要将其写入表格'用户'进入专栏' favorite_count'我真的不知道如何连接这两个步骤。我通过这样的UPDATE-Statement尝试了它:
UPDATE users
SET favorite_count=COUNT(favorite_count) FROM tweets
WHERE tweets.user=users.user
我知道" ="之后的部分是胡说八道,但我不知道如何将COUNT函数纳入其中。
建议会很棒。
答案 0 :(得分:0)
你可以尝试这个兄弟。
Update b
SET favorite_count=COunt(favorite_count)
FROM
tweets a
JOIN
Users b
ON a.Column1=b.Column1
答案 1 :(得分:0)
你真的很接近子查询版本:
update users
set favorite_count = (
select count(favorite_count)
from tweets
where tweets.user=users.user
);
内联接到派生表(子查询)版本:
update u
set favorite_count = t.favorite_count
from users u
inner join (
select user, count(favorite_count) as favorite_count
from tweets
group by user
) as t
on u.user = t.user
答案 2 :(得分:0)
您应始终在问题中标记您正在使用的RDBMS。
您可以在大多数数据库中对更新使用相关查询:
update users u
set favorite_count = (
select count(favorite_count)
from tweets t
where t.user = u.user
);
如果您不想要关联,其他解决方案主要是供应商特定的。
在SQL Server中,您可以使用:
update u
set u.favorite_count = t.cnt
from users u join (
select
user,
count(favorite_count) as cnt
FROM tweets
GROUP BY user
) t on u.user = t.user;
在MySQL中:
update users u join (
select
user,
count(favorite_count) as cnt
FROM tweets
GROUP BY user
) t on u.user = t.user
set u.favorite_count = t.cnt;