10

私は SQL Server を使用しており、次の列を持つテーブルがあります。

SessionId | Date | first name | last name 

私はやりたいと思いgroup by sessionId、最大日付の行を取得します。

例えば:

xxx | 21/12/2012 | f1 | l1
xxx | 20/12/2012 | f2 | l2
yyy | 21/12/2012 | f3 | l3
yyy | 20/12/2012 | f4 | l4

次の行を取得したいと思います。

xxx | 21/12/2012 | f1 | l1
yyy | 21/12/2012 | f3 | l3

ありがとうございました

4

5 に答える 5

0
    SELECT b.sessionid, 
       b.date, 
       b.fristname,         b.lastname 
FROM   (SELECT t2.sessionid, 
               Max(t2.date) AS Date 
        FROM   temp1 t2 
        GROUP  BY t2.sessionid) a, 
       temp1 b 
WHERE  a.sessionid = b.sessionid 
       AND a.date = b.date

結果を見つける最良の方法は

于 2013-01-01T17:22:58.183 に答える
0

ほら、これでいい

select a.date1,a.first_name,a.last_name
from(select row_number() 
over(partition by SessionId order by SessionId) rnk,date1,first_name,last_name
from table1) a where a.rnk=1

SQL_FIDDLE_DEMO

于 2013-01-01T14:54:07.687 に答える