|
|
1
2
您的问题是,您将所有超时都加入到所有确认中。因此,对于具有2个超时和3个确认的注册,您将获得2 x 3=6行,然后进行聚合。 聚合多个表时,请在加入前进行聚合:
另一种选择是这里的条件聚合:
|
|
|
2
0
要查看发生了什么,请查看不带分组依据的子查询。
请注意user_id 7有2行,每行都有一个超时 和 确认。这些行被计算为 二者都 超时和确认。这是因为您要同时连接两个表。 如果我们先进行聚合,然后再加入,计数就会计算出来。
注:
最好写成没有子查询。
注意:当列名与SQL关键字冲突或非常接近时,这很好地表明您的名称过于通用。例如
这就引出了每一行确认代表什么的问题。它们不是确认,而是确认尝试。也许该表应该称为ConfirmationAttempts,时间戳为
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |