わかりましたので、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 までさかのぼって機能するソリューションが欲しいのですが、それ以降のバージョンでより良いソリューションがあれば、それも聞きたいです。