以下是一个示例的解决方法,使用SQL语句按照"Where in"条件获取每个ID的前1行:
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY SomeColumn) AS RowNum
FROM YourTable
WHERE Id IN (1, 2, 3) -- 替换为你需要的ID列表
) AS T
WHERE T.RowNum = 1;
上述代码假设你的表名为"YourTable",你需要替换"Id"为你的ID列名,"SomeColumn"为用于排序的列名,"1, 2, 3"为你需要获取前1行的ID列表。通过使用ROW_NUMBER()函数和PARTITION BY子句,可以为每个ID分配一个行号,并按照指定列进行排序。最后,外层查询选择行号为1的行,即每个ID的前1行。