あなたの例2では、しばらく頭を悩ませていました。「DISTINCT
はできません。 単一の列、それはどういう意味ですか?」-何が起こっているのか理解するまで。
持っているとき
SELECT DISTINCT(t.ItemNumber)
あなたはではありません 、外観にもかかわらず、実際にはt.ItemNumber
の個別の値を要求します !例2は、実際には
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
t.ItemNumber
の前後に構文的には正しいが、余分な括弧が付いている 。 DISTINCT
が全体として得られるのは、結果セットです。 適用されます。
この場合、GROUP BY
実際に変化する列でグループ化すると、同じ結果が得られます。実際、SQL Serverが(GROUP BY
で)そうではないことに少し驚いています。 例)サブクエリされた列がGROUP BY
で言及されていることを主張します リスト。