1

名前と注文日を含むテーブルがあります。それぞれの名前が最後に逆順で並べられた時刻を表示するクエリを考え出そうとしています。したがって、それぞれの名前は新しい順ですが、最初に注文した名前で並べ替えられます。

では、このデータで

Tom,10/01/2013  
Bob,09/24/2013  
Tom,11/03/2013  
Tom,10/24/2013  
Bill,11/01/2013  
Bob,10/22/2013  

これ欲しい

Bob,10/22/2013  
Bill,11/01/2013  
Tom,11/03/2013  

SELECT * from orders group by name order by -odate ランダムまたは最新の日付よりも古いものを試してみましたがSELECT * from orders order by -odate group by name 、最初にソートされると考えてみましたが、何も返されませんでした

ありがとうエド

4

3 に答える 3

1
SELECT name, MAX(odate) odate FROM orders GROUP BY name ORDER BY odate
于 2013-11-03T09:06:11.550 に答える
0

MAX日付列に関数を使用してみてください

SELECT name, MAX(odate) from orders group by name order by odate
于 2013-11-03T09:03:58.693 に答える
0

ここで重要なことは、名前で GROUP BY することですが、必要な最大値を選択することです。

グループ化すると、他のフィールドに対して範囲関数を実行できます。

ORDER BY DESC を使用すると、最新のものが最初に表示されます。

SELECT name, MAX(odate) AS odate FROM orders GROUP BY name ORDER BY odate DESC

SQLフィドルを参照してください

于 2013-11-03T09:04:00.347 に答える