0

個別の Email 列を選択したいが、その行の他の列もオブジェクトに保存したいとします。これは私が得たものです

SELECT DISTINCT NLMember2.Email
INTO holddups99
FROM NLMember2, holdkey0
WHERE NLMember2.Email = holdkey0.Email

上記のクエリは機能しますが、Email 列のみが保存されます。すべての列を DISTINCT メール条件で保存したいと考えています。

私は今しばらく立ち往生しています。

乾杯

編集済み

もう少し明確にするために、NLMember2 で ID,Email,Name,Address, ..... を取得しました。重複したメールを holddups99 に保存したいだけですが、他の列、つまり ID、名前、住所、..... NLMember2 から

4

1 に答える 1

3

したがって、 group by を使用したいEmailのですが、group by 句の一部ではない他の列をどのように集計するかを指定する必要があります。最低(MIN)または最高(MAX)の値などを取得できます。

別のアプローチはROW_NUMBER、CTE で使用することです。各メール グループの最初の行のみを選択します。

WITH CTE AS
(
    SELECT nl.Email, OtherColumns, ... ,
        RN = ROW_NUMBER() OVER (PARTITION BY Email ORDER BY Email ASC)
    FROM dbo.NLMember2 nl INNER JOIN dbo.holdkey0 hk
        ON nl.Email = hk.Email 
)
SELECT * FROM CTE WHERE RN = 1

の順序ROW_NUMBERを変更して、取得する行のロジックを変更します。

于 2013-11-07T13:02:12.373 に答える