0

特定のデータセットを毎日分析しようとしています。テーブルは次のようになります。

custNo  visitTime          FirstVisit

1234    2013-01-31 20:15  
1234    2013-01-31 22:30
1234    2013-02-15 02:30
1234    2013-02-15 06:30
1234    2013-02-15 11:30
1234    2013-02-15 21:30

Daily analysisを使用していくつかのことをしようとしていますcustNo。上記のように、顧客番号は繰り返されます。までの1日2013-01-31 1:00amです2013-02-01 00:59am。のクエリを作成しようとしていますFirstVistTime。したがって、 for31st Janは である必要が2013-01-31 20:15あり、 for は15th Febである必要があります2013-02-15 02:30

これまでのところ、次のクエリを思いつきました。

select custNo, visitTime, FirstVisit=(select MIN(c.visitTime) FROM customer c  where
(c.custNo=ct.custNo and c.visitTime >= '01/01/2013 01:00' and c.visitTime < '03/01/2013 
01:00') 
from customer ct 
where visitTime >= '01/01/2013 01:00' 
    and visitTime < '03/01/2013 01:00' 

これに関する問題は - がcustNo繰り返される場合、すべての行が考慮され、最小日付が計算されます。上記の場合は になります 2013-01-31 20:15。使ってみましたmin(visitTime)over(partition by custNo,visitTime)。それはsubquery2 つの値を返す です。

4

3 に答える 3