الخلية بيانات طلب الاستعلام بطريقتين
-
08-07-2019 - |
سؤال
وأنا تتبع صفحة وجهات النظر داخل وحدات باستخدام الجدول التالي:
id | page_id | user_id | session_id | created
وكل صفحة هي فريدة من نوعها إلى وحدة نمطية معينة. حتى الصفحة 14 موجود فقط في وحدة 2، على سبيل المثال.
وأنا أحاول أن أكتب استعلام أن يقول لي عندما بدأت جلسة عرض (GROUP BY SESSION_ID) لوحدة نمطية معينة، ولكن أواجه مشكلة مع بلدي الطلب. في الأساس، لتلك الدورة مجمعة، أريد أن أعود في أقرب وقت ممكن "خلق" (وقت البدء من جلسة المشاهدة) وأحدث PAGE_ID (مدى التقدم الذي حصل داخل وحدة).
ما هي أفضل طريقة لتحقيق ذلك؟
المحلول
وأعتقد أنك سوف تحتاج إلى استخدام الاستعلامات الفرعية في اختيار:
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
نصائح أخرى
SELECT MIN(created), MAX(page_id)
FROM modules
GROUP BY
session_id
لا تنتمي إلى StackOverflow