前提・実現したいこと
タイトルでは最小/最大と記載しましたが、
まずは最小値を抽出することを焦点にご相談したいと思います。
次のようなユーザーアクセスログがあり、
"日ごと"で、”そのユーザーが”一番最初にアクセスした時間を抽出したいです。
ソース元[AccessLog]
Date | Name |
---|---|
2020/10/1 7:00 | Taro |
2020/10/1 8:30 | Taro |
2020/10/1 13:00 | Taro |
2020/10/2 8:00 | Taro |
2020/10/2 9:30 | Taro |
2020/10/1 7:30 | Hanako |
2020/10/2 9:00 | Hanako |
2020/10/2 10:00 | Hanako |
抽出したいデータ
Date | Name |
---|---|
2020/10/1 7:00 | Taro |
2020/10/2 8:00 | Taro |
2020/10/1 7:30 | Hanako |
2020/10/2 9:00 | Hanako |
試したこと
ソース元のテーブルから算出すると難しかったので、
あらかじめ1日分のデータを抽出したテーブルを用意し、
1日分の最小値を出すことはできました。
しかしながら、ログ集計が1週間や1ヶ月分ともなると現実的でなくつまづいています。
複数の条件を組み合わせることに慣れていなく、お力添えいただけますと幸いです。
1日分のアクセスログ[1day_AccessLog]
Date | Name |
---|---|
2020/10/1 7:00 | Taro |
2020/10/1 8:30 | Taro |
2020/10/1 13:00 | Taro |
2020/10/1 7:30 | Hanako |
SQL
1SELECT Date,Name 2 FROM ( 3 SELECT 4 Date, 5 Name, 6 ROW_NUMBER() OVER(PARTITION BY Name ORDER BY Date ASC) AS MinDate 7 FROM 1day_AccessLog 8 ) TEMP 9WHERE MinDate = 1
抽出データ
Date | Name |
---|---|
2020/10/1 7:00 | Taro |
2020/10/1 7:30 | Hanako |
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/23 14:10