|
|
1
2
您的问题是,您将所有超时都加入到所有确认中。因此,对于具有2个超时和3个确认的注册,您将获得2 x 3=6行,然后进行聚合。 聚合多个表时,请在加入前进行聚合:
另一种选择是这里的条件聚合:
|
|
|
2
0
要查看发生了什么,请查看不带分组依据的子查询。
请注意user_id 7有2行,每行都有一个超时 和 确认。这些行被计算为 二者都 超时和确认。这是因为您要同时连接两个表。 如果我们先进行聚合,然后再加入,计数就会计算出来。
注:
最好写成没有子查询。
注意:当列名与SQL关键字冲突或非常接近时,这很好地表明您的名称过于通用。例如
这就引出了每一行确认代表什么的问题。它们不是确认,而是确认尝试。也许该表应该称为ConfirmationAttempts,时间戳为
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
|
anandyn02 · 按名称连接两个表并分组 2 年前 |
|
|
David Robie · 删除以XXX开头并符合条件的列 2 年前 |
|
|
swat · 在同一列上选择SQL语句 2 年前 |
|
Santi · Shadcn/ui选择-当用户选择项目时更改状态 2 年前 |