Этот вопрос отличается от часто задаваемого вопроса об упорядочении окончательных результатов по предложению IN.
Я бы хотел, чтобы результаты, возвращаемые запросом, содержащим предложение IN, соответствовали порядку предложения IN.
Это оригинальный вопрос , с которым я работаю.
Я бы хотел изменить запрос ниже, чтобы строка, содержащая progress=2
, находилась до progress=4
и progress=7
для каждого session_id
при упорядочении таблицы formation_page_hits
по datetime
.
Вот текущий запрос:
SELECT COUNT(*)
FROM (
SELECT session_id
FROM formation_page_hits
WHERE progress IN (2, 4, 7)
AND datetime >= '2011-03-23'
AND datetime < '2011-03-24'
GROUP BY
session_id
HAVING COUNT(DISTINCT progress) = 3
) q
Эти записи
datetime, session_id, progress
('2011-03-01 01:02:11', 'abc', 2)
('2011-03-01 01:02:12', 'abc', 4)
('2011-03-01 01:02:13', 'abc', 7)
должно соответствовать запросу, но:
datetime, session_id, progress
('2011-03-01 01:02:11', 'abc', 4)
('2011-03-01 01:02:12', 'abc', 2)
('2011-03-01 01:02:13', 'abc', 7)
не должно совпадать.
Дополнительно:
datetime, session_id, progress
('2011-03-01 01:02:11', 'abc', 4)
('2011-03-01 01:02:12', 'abc', 2)
('2011-03-01 01:02:13', 'abc', 4)
('2011-03-01 01:02:14', 'abc', 7)
должно совпадать.