sql 按排序顺序查询 select 多个项目

sql query to select multiple items in sorted order

我正在写 post api in c# 到 select Azure Cosmos db 中的一些值,并且正在使用直接 sql 查询。

目的是针对请求中的每个 ID 获取最高值。

请求正文:

[
  {
     "userid":"1"
  },
  {
     "userid":"4"
  }     
]

数据库看起来像:

{
  "userid":"1",
  "value":"10",
  "Date":"10-9-19"
}

{
  "userid":"1",
  "value":"20",
  "Date":"11-8-19"
}

{
  "userid":"4",
  "value":"30",
  "Date":"10-9-19"
}

{
  "userid":"4",
  "value":"40",
  "Date":"11-9-19"
}

预期输出:

[
 {
  "userid":"4",
  "value":"40",
  "Date":"11-9-19"
 },
 {
  "userid":"1",
  "value":"20",
  "Date":"11-8-19"
 }
]

我试图将 id 放入一个数组中,然后使用 'IN' 运算符,但如果有更简单的查询会有所帮助,这将很有帮助,我们将不胜感激。

尝试以下操作以获得结果。

根据您的数据,这将有效。

SELECT userid, 
    MAX(value) value,
    MAX(Date) Date
FROM YourTable
GROUP BY userid
ORDER BY userid

如果您想要 MAX(Value) 的相关日期,请试试这个。

SELECT Y.userid, Y.Value, Y.Date 
FROM YourTable Y
JOIN 
    (
    SELECT userid, 
        MAX(value) value
    FROM YourTable
    GROUP BY userid
    )D ON D.userid = Y.userid AND D.value = Y.value