【问题标题】:How do I get a list of users where latest status is True?如何获取最新状态为 True 的用户列表?
【发布时间】:2022-01-18 16:24:37
【问题描述】:

获取此用户和状态列表:

我需要一个 SQL,它会给我一个最新状态为 True 的用户列表 - 这将是用户:2 和 5(用户 4 的最新状态为 False)

如何存档?

【问题讨论】:

  • 这能回答你的问题吗? Get top 1 row of each group
  • 这里的大多数人希望样本表数据和预期结果为格式化文本,而不是图像。还向我们展示您当前的查询尝试。 IE。 minimal reproducible example.
  • 就我个人而言,我喜欢交叉应用方法。但与一切一样;这取决于您的环境:stackoverflow.com/questions/42451972/…
  • 请阅读this,了解一些改进问题的技巧。当所有列都是数据类型pixel 时,如何确定“最新”Status?您期望从样本数据中得到什么结果?你试过什么?您的实际问题非常令人困惑:“如何存档?”

标签: sql tsql


【解决方案1】:

使用ROW_NUMBER,然后过滤状态为真:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY StatusDate DESC) rn
    FROM yourTable
)

SELECT UserID
FROM cte
WHERE rn = 1 AND Status = 'True';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 2018-11-23
    • 1970-01-01
    • 2015-10-25
    • 2015-05-13
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多