SQL Server を使用すると、...
ID SKU PRODUCT
=======================
1 FOO-23 Orange
2 BAR-23 Orange
3 FOO-24 Apple
4 FOO-25 Orange
欲しい
1 FOO-23 Orange
3 FOO-24 Apple
このクエリでは目的を達成できません。 1 つの列のみで SELECT DISTINCT を実行するにはどうすればよいでしょうか?
SELECT
[ID],[SKU],[PRODUCT]
FROM [TestData]
WHERE ([PRODUCT] =
(SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%'))
ORDER BY [ID]
ベストアンサー1
SQL Server 2005 以降を使用している場合は、ROW_NUMBER() で CTE を使用できます。
SELECT *
FROM (SELECT ID, SKU, Product,
ROW_NUMBER() OVER (PARTITION BY PRODUCT ORDER BY ID) AS RowNumber
FROM MyTable
WHERE SKU LIKE 'FOO%') AS a
WHERE a.RowNumber = 1