2017-05-16 11 views
0

私はSQLで最初の仕事を得ましたが、注文機能で混乱しました。ここ は、テーブルの一例である:IDでグループ分けし、SQLで最小値と最大値を見つけた

customer_id is_employee  purchase_datetime 
    42525   0  2007-02-19 12:49:34:560000 
    42525   0  2007-02-22 16:14:55:220000 
    42525   0  2007-03-02 10:56:15:200000 
    52525   1  2007-02-22 14:45:18:130000 
    46233   0  2007-02-21 10:29:39:010000 
    53364   0  2007-02-13 08:33:34:320000 
    53364   0  2007-02-20 10:01:09:540000 

私は、CUSTOMER_IDのDISTINCTだろうユニークユーザーを見つけることは、従業員だかいないかどうかを示すと、すべての顧客のための最初と最後の購入を見つける必要があります。 私はSQLの初心者で、どこから始めたらいいのか分かりません。

+0

両方の可能カントと仮定したが、期待される結果は何ですか? – jarlh

答えて

1

おそらく:

select customer_id, is_employee, max(purchase_datetime),min(purchase_datetime) 
from table_name 
group by customer_id, is_employee 
; 

それはあなたが従業員ではなく1つの同時にそのテーブルのデータで

+1

なぜDISTINCTを選択するのですか? GROUP BYは重複を返しません。 – jarlh

+0

はい。義理。そのis_employeeフィールドについて私は確信が持てませんでした。もし私がそれがある日従業員になり、お互いになることができないと仮定しなければならないならば。このクエリでは特に必要はありません。 –

+0

@Tom これは完璧に動作します、ありがとう、皆さん。 – jovicbg

1
SELECT 
    customer_id 
    ,is_employee 
    ,MIN(purchase_datetime) AS 'EarliestPurchase' 
    ,MAX(purchase_datetime) AS 'LatestPurchase' 
    FROM tbl 
    GROUP BY customer_id, is_employee 
+0

ANSI SQLでは、区切られた識別子の二重引用符が必要です。 '' EarliestPurchase''です。 – jarlh

関連する問題