1

次の表を使用して、モジュール内のページ ビューを追跡しています。

id | page_id | user_id | session_id | created

すべてのページは特定のモジュールに固有です。たとえば、14 ページはモジュール 2 にのみ存在します。

特定のモジュールの表示セッション (GROUP BY session_id) がいつ開始されたかを示すクエリを作成しようとしていますが、順序付けに問題があります。基本的に、そのグループ化されたセッションについて、最も早い「作成された」(表示セッションの開始時間) と最新の page_id (モジュール内での到達距離) を返したいと考えています。

これを達成するための最良の方法は何ですか?

4

2 に答える 2

3

選択でサブクエリを利用する必要があると思います:

SELECT a.session_id, MIN(a.created) as start_time, 
b.page_id AS last_page, b.end_time
FROM table a 
INNER JOIN 
   (SELECT b.session_id, MAX(b.created) as end_time, MAX(b.page_id) 
   FROM table b GROUP BY b.session_id) 
ON a.session_id = b.session_id GROUP BY a.session_id
于 2009-05-07T15:27:43.780 に答える
2
SELECT  MIN(created), MAX(page_id)
FROM    modules
GROUP BY
        session_id
于 2009-05-07T15:21:37.553 に答える