0

テーブル:

+------------+------------------+
|     Number |       Date       |
+------------+------------------+
|          1 | 1900-01-01       |
|          1 | 2012-01-01       |
|          1 | 2011-01-01       |
|          2 | 1900-01-01       |
|          2 | 2007-01-01       |
+------------+------------------+

結果は次のようになる必要があります。

+------------+------------+
|     Number |    Date    |
+------------+------------+
|          1 | 2012-01-01 |
|          2 | 2007-01-01 |
+------------+------------+

等々...

編集 -

テーブル:

+------------+------------------+------------+
|     Number |       Date       |   Field3   |
+------------+------------------+------------+
|          1 | 1900-01-01       |     a      |
|          1 | 2012-01-01       |     b      |
|          1 | 2011-01-01       |     c      |
|          2 | 1900-01-01       |     a      |
|          2 | 2007-01-01       |     b      |
+------------+------------------+------------+

GROUP の Date = MAX である Number の DISTINCT を選択したい。

したがって、クエリの後、次のようになります。

1...b

2...b
4

1 に答える 1

4

max()で集計関数を使用する必要がありますGROUP BY

SELECT number, max(date)
from yourtable
group by number

デモで SQL Fiddle を参照してください

データベースに応じて、次を使用できますrow_number()

select number, date
from
(
  select number, date,
    row_number() over(partition by number order by date desc) rn
  from yourtable
) src
where rn = 1

SQL Fiddle with Demoを参照してください。

これは、サブクエリを使用して記述することもできます。

select t1.*
from yourtable t1
inner join
(
  SELECT number, max(date) MaxDate
  from yourtable
  group by number
) t2
  on t1.number = t2.number
  and t1.date = t2.maxdate;

デモで SQL Fiddle を参照してください

于 2013-03-05T23:06:35.620 に答える