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
我正在写 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