好的,所以我知道当您使用 group by 执行 SQL 命令时,您无法在没有聚合的情况下提取特定字段,但在我看来,如果您对保证唯一的主键进行聚合,则应该是一种将该列的其他行与它一起拉动的方法。像这样的东西:
SELECT Max(id),
foo,
bar
FROM mytable
GROUP BY value1,
value2
所以 ID 保证是唯一的,所以 foo 和 bar 的值正好是 1,有没有办法生成这样的查询?
我已经尝试过了,但是在这种情况下 MyTable 有数百万行,并且运行时是不可接受的:
SELECT *
FROM mytable
WHERE id IN (SELECT Max(id)
FROM mytable
GROUP BY value1,
value2)
AND ...
理想情况下,我想要一个至少可以追溯到 SQL Server 2005 的解决方案,但如果在更高版本中有更好的解决方案,我也希望听到它们。