У мене є таке:
SELECT * FROM (SELECT * FROM table ORDER BY id DESC) t GROUP BY pcid
SELECT * FROM (SELECT * FROM table ORDER BY timestamp DESC) t GROUP BY pcid
Я не можу отримати GROUP BY в правильному порядку. Він завжди тягне з найменшого значення.
Чи є у мене відсутній якийсь синтаксис, який мені не підходить?
Після того як шукати останні кілька годин, щоб знайти вирішення цієї проблеми, я не зміг вирішити цю проблему. Це питання було поставлено питання, оскільки я не зміг знайти відповідь.
Ось моя структура таблиці:
стіл id, primary ПКС ЦП memphy memcom Мемвір часовий покажчик
Я намагався сортувати за тайм-метром та ідентифікатором без успіху.
Відповіді:
0 для відповіді № 1Цей запит повинен повернути потрібні вам рядки:
select
t.*
from
table t INNER JOIN (select column, max(highest) m_highest
from table
grouo by column) tm
on t.column=tm.column and t.highest=tm.m_highest
Підзапит повертає максимальний максимум у стовпчику, після чого ви приєднуєтесь до початкової таблиці t і повертаєте всі рядки, які мають найбільшу величину = максимально високий для кожного стовпця.
0 для відповіді № 2
Ви повинні дати більше деталей, але це може бути щось на зразок цього:
SELECT column, highest, count(somecolumnname)
FROM table_name
GROUP BY column, highest
ORDER BY highest DESC