Подтвердить что ты не робот

SQL Select Distinct Values, но порядок по другому значению

Я хочу выбрать все отдельные order_ids из моей таблицы и заказать этот список по столбцу даты. Использование DISTINCT - это, конечно, параметр ширины запроса, поэтому попытка что-то вроде этого не работает:

SELECT DISTINCT(orderId, datetime) 
FROM table 
ORDER BY datetime DESC

Это возвращает все комбинации DISTINCT из orderId и datetime, поэтому я остался с несколькими orderIds, чего я не хочу. Поэтому я думаю, что предложение DISTINCT - это не путь. У кого-нибудь есть предложения по тому, как я могу решить эту проблему?

Спасибо!

4b9b3361

Ответ 1

Если для заказа есть несколько строк, какую дату вы хотите показать? возможно:

SELECT [orderId], MAX([datetime])
FROM [table]
GROUP BY [orderId]
ORDER BY MAX([datetime]) DESC

Ответ 2

Если у вас несколько идентификаторов orderID в вашей таблице (и каждый из них имеет разные значения datetime), какой из них вы хотите выбрать? Самая новая дата, самая старая дата или что-то еще?

Ответ 3

Возможно, CTE поможет:

WITH CTE
AS
(

SELECT orderId FROM table ORDER BY datetime DESC

)

SELECT DISTINCT orderId  FROM CTE

Ответ 4

SELECT DISTINCT * FROM 
  (SELECT value1 
   FROM table1 
   ORDER BY value2);

Это сработало для меня.