東京に棲む日々

データ分析、統計、ITを勉強中。未だ世に出ず。

単なるSQLメモ

 

このようなSampleデータがあったとする。

f:id:High_School_Student:20151020132347j:plain

 

Group別に、時間(Min)が最大となる行を取り出したい。

 

クエリー実行後。

f:id:High_School_Student:20151020132403j:plain

 

SELECT T1.*
FROM Sample T1
INNER JOIN(
     SELECT Group, MAX(Min) AS MAX_Min
     FROM Sample
     GROUP BY Group
) T2 ON T1.Group = T2.Group
        AND T1.Min = T2.MAX_Min

この場合、時間(Min)に重複がないことを仮定している。

 

またこういった、時間が分かれている(Min、Sec)Sampleデータの場合。

f:id:High_School_Student:20151020132541j:plain

 

クエリー実行後。

f:id:High_School_Student:20151020132551j:plain


SELECT T1.*
FROM Sample T1
INNER JOIN(
     SELECT Group, MAX( Min||Sec ) AS MAX_MinSec
     FROM Sample
     GROUP BY Group
) T2 ON T1.Group = T2.Group
        AND T1.Min || T1.Sec = T2.MAX_MinSec

 

以上、単なるSQLメモ。