我想添加代表其他表计数的列。
我有3张桌子。
留言内容
MessageID User Message Topic
1 Tom Hi ball
2 John Hey book
3 Mike Sup book
4 Mike Ok book
主题
Topic Title Category1 Category2
ball Sports Action Hot
book School Study Hot
星星_吉文
starID Topic
1 ball
2 book
3 book
4 book
我要结束于:
Topic_Review
Topic Title StarCount UserCount MessageCount
ball Sports 1 1 1
book school 3 2 3
因此,基本上我想在3列中附加唯一值的计数(每个主题中给定的星数,在主题中具有消息的唯一用户以及每个主题中的唯一消息数)。
我希望最终也能够过滤类别(在两列中均可见)。
此外,我最终希望按加入的人数进行排序。例如,我将要有一个按钮,该按钮按升序按“星数”排序,或按降序按“用户数”排序,依此类推。
我尝试调整其他人的答案,但无法正常工作。
select
t.Topic,
t.Title,
count(distinct s.starID) as StarCount,
count(distinct m.User) as UserCount,
count(distinct m.messageID) as MessageCount
from
Topics t
left join Messages m ON m.Topic = t.Topic
left join Stars_Given s ON s.Topic = t.Topic
group by
t.Topic,
t.Title
或者,您可以在子查询中执行聚合,如果表中有大量数据,这可能会更有效:
select
t.Topic,
t.Title,
s.StarCount,
m.UserCount,
m.MessageCount
from
Topics t
left join (
select
Topic,
count(distinct User) as UserCount,
count(*) as MessageCount
from Messages
group by Topic
) m ON m.Topic = t.Topic
left join (
select
Topic,
count(*) as StarCount
from Stars_Given
group by Topic
) s ON s.Topic = t.Topic
我想添加表示来自其他表的计数的列。 我有三张桌子。 消息 主题 STARS_GIVED 我想以: 主题回顾 所以基本上,我想附上3列唯一值的计数(每个主题中给出的星数,在主题中有消息的唯一用户,以及每个主题中唯一消息的数量)。 我希望最终能够对类别进行筛选(看看两列)。 此外,我希望最终按我加入的计数排序。例如,我将有一个按钮,按“星星的数目”按升序排序,或按“用户的数目”按降序排序,等等。 我试
我对以下查询有问题: 这个想法是把包括邮资在内的订单总价拿回来。 已订购的项目-包括所有已订购的项目(因此可以有多行) 订单-包括订单的邮资价格(这里每个订单只有一行) 我遇到的问题是,如果订单中包含多个“ordered_items”项目,则上述金额会多次计算“orders”中的邮资。 如何重写此查询,使邮资只计算一次? 提前感谢任何帮助。
我有两张桌子。与文章编号相关的图像。还有一张照片上有文章编号 我想要做的是列出第一个表中的所有图像(navn)(它是一个特定的文章编号(art_id))和第二个表中的最多5个图像(其中文章编号(artid)出现在照片(fotostation)上)。 (我现在不知道该怎么做:) 这不起作用 表格: 这些表与fotostation字段相关。要在“ECS_article_images_inneholde
问题内容: class Match(Base): tablename = ‘matches’ 我需要编写一个查询,该查询将列和团队表连接在一起,以显示本地和客队的团队信息。 这返回 问题答案: 首先,您的代码不起作用的原因是因为SQLAlchemy不知道您是否要通过via或加入,因此您必须告诉它。此外,您需要加入两次,这使事情变得更加复杂。 使用以下命令可以更轻松地完成此操作: 并且将在相同的查询
问题内容: 如何从MySQL的多个表中选择COUNT(*)? 如: 编辑: 目标是返回此: 问题答案: 您可以通过使用子查询来实现,每个tableCount一个子查询:
问题内容: 大多数SQL方言都接受以下两个查询: 现在显然当您需要外部联接时,需要第二种语法。但是,在进行内部联接时,为什么我应该更喜欢第二种语法(反之亦然)? 问题答案: 在大多数现代数据库中,不赞成使用仅列出表并使用子句指定连接条件的旧语法。 这不仅是为了展示,当您在同一查询中同时使用INNER和OUTER联接时,旧语法可能会变得模棱两可。 让我给你举个例子。 假设您的系统中有3个表: 每个表