SELECT id, page, params, timespent
FROM pagetrack
WHERE sessionid = '5asss123f640'
GROUP BY page , params
ORDER BY id DESC

Здесь id является первичным ключом. При выполнении этого запроса результат находится в порядке возрастания, но мне нужно в порядке убывания

-1
sukanya mohan 27 Ноя 2019 в 13:18
1
С помощью group by вам нужно указать все неагрегированные столбцы. Какого результата вы ожидаете?
 – 
Eriks Klotins
27 Ноя 2019 в 13:21
Я хочу, чтобы идентификатор был в порядке убывания, потому что столбец времени последнего идентификатора имеет наивысшее значение. А также он должен группироваться по имени страницы
 – 
sukanya mohan
27 Ноя 2019 в 13:32
1
Где именно то соединение, о котором вы говорите в названии?
 – 
Lelio Faieta
27 Ноя 2019 в 13:36
1
Если идентификатор уникален и вы хотите сохранить его в результатах, группировать по не имеет смысла. Обновите вопрос и покажите пример данных и ожидаемого результата.
 – 
Eriks Klotins
27 Ноя 2019 в 13:43
Группа by без агрегатных функций вряд ли будет полезна, также id и timespent могут быть неопределенными. Вы просто ищете строку, содержащую самый последний идентификатор страницы и параметры?
 – 
P.Salmon
27 Ноя 2019 в 14:27

1 ответ

Вы можете использовать подзапрос, сначала SQL получить все результаты, а затем в этом порядке будет работать

Когда вы используете группу к тому времени, одни и те же данные будут группой, поэтому идентификатор будет не точным

SELECT main.* FROM (
                    SELECT id, page, params, timespent
                    FROM pagetrack
                    WHERE sessionid = '5asss123f640'
                    GROUP BY page , params
                  ) main
ORDER BY main.id DESC
0
Shafiqul Islam 27 Ноя 2019 в 13:43