SQL:如何计算有多少用户从两个不同的表中获得了超过500个图像



我是SQL的新手。我正在尝试做一个简单的连接查询。

我有两个表:

  1. 第一个表albums,列名称为album_id,user_id*和album_img_count(album_img_count-列表示有多少张图片属于一个相册)。

  2. 第二个表isuserswithuser_id*.

*user_id对于两个表是相同的(albums.user_id=users.user_id)

我想统计有多少用户获得了超过500张图片.

棘手的部分-用户可以有一个有600张图片的相册,或700张有1张图片的相册。这两个对我们的问题都成立。因此,我们不能简单地计算album_idalbum_img_count,我们必须以某种方式将它们组合起来。

我想统计有多少用户获得了超过500张图片。

这听起来像聚合。获取用户列表:

select user_id, sum(album_img_count)
from t
group by user_id
having sum(album_img_count) > 500;

然后将其用作子查询:

select count(*)
from (select user_id, sum(album_img_count) as cnt
from t
group by user_id
having sum(album_img_count) > 500
) x;

这样可以吗?

select users.name, sum(album_img_count) as cnt
from albums, users
where users.user_id = albums.user_id
group by user_id
having cnt > 500

相关内容

  • 没有找到相关文章

最新更新