2016-05-10 16 views
0

私は、最後の日付DTを購入したユーザーIDごとに選択した列をプルアップしようとしています。選択した列の一部をグループ化できません

私はグループことができないので、だから私はPurchased, A , S

SELECT UserID, MAX(Date), Purchased, A , S 
FROM aramdb 
WHERE Purchased > 0 
GROUP BY UserID; 

で、これは間違っているおかげだと思います!

+4

あなたはどのようなRDBMSを使用していますか? –

+0

一般的なGROUP BY規則: "GROUP BY句が指定されている場合、SELECTリストの各列参照は、グループ化列を識別するか、または集合関数の引数でなければなりません。 – jarlh

答えて

1

は、SQL Server、またはウィンドウ関数をサポートしている他のDBMSを使用している場合、あなたはROW_NUMBERを使用することができます。

WITH Cte AS(
    SELECT *, 
     rn = ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY Date DESC) 
FROM aramdb 
WHERE Purchased > 0 
) 
SELECT 
    UserID, Date, Purchased, A , S 
FROM Cte 
WHERE rn = 1 
+0

これは役に立ちました、ありがとう! – NANA

関連する問題