【发布时间】:2021-01-16 13:13:57
【问题描述】:
我有一个数据库,用于衡量用户在我们系统中执行的每一步。
我想选择所有用户(usuarioId 列),我们平台上的最后一步是:“Resultado Idwall APROVADO”(mensagem 列)
这是一个比步骤“Resultado Idwall APROVADO”更进一步的用户示例
我尝试使用:
select *
from usuarioAnalise
where 1=1
and mensagem = 'Resultado Idwall APROVADO'
and criacaoData=max(criacaoData)
group by usuarioId
由于我们为同一个用户有多个日志,我认为我应该将用户列在“Resultado Idwall APROVADO”的位置,这是最后一个日志 (criacaoData=max(criacaoData) )
但它给了我错误行: 聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且被聚合的列是外部引用。
【问题讨论】:
-
您通常
GROUP BY与您SELECT相同的列,除了那些是设置函数的参数的列。 -
and criacaoData = (select max(criacaoData) ... -
这里的大多数人希望样本表数据和预期结果为格式化文本,而不是图像。 (而且我看不懂那个微小的图像文本。)
标签: sql datetime group-by greatest-n-per-group window-functions