プロが教えるわが家の防犯対策術!

日付の月と区分でグループ化して
月の最終日データの値を取得したいのですが
どうすればいいのでしょうか?
値は必ずしもMAXとは限らないのです。

よくわかっていないのですが
サブクエリとかを使用すればできるんでしょうか?

日付,区分,値
2015-01-01,1,2500
2015-01-02,1,2700
2015-02-01,1,3200
2015-02-02,1,700
2015-01-01,2,750
2015-01-03,2,800
2015-02-01,2,1100
2015-02-02,2,1300

データが上記なら

2015-01,1,2700
2015-02,1,700
2015-01,2,800
2015-02,2,1300
と取得する方法です。

よろしくお願いします。

質問者からの補足コメント

  • つらい・・・

    回答ありがとうございます。

    必ずしも、最大値ではないのです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/10/19 14:17

A 回答 (3件)

#2です。

コピペミスでした

//表示
select t1.年月,t1.区分,t2.値
from(
select date_format(日付,"%Y-%m") as 年月,区分,max(日付) as 日付
from hoge
group by 年月,区分
) as t1
inner join hoge as t2
on t1.日付=t2.日付 and t1.区分=t2.区分;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど。
いいヒントになりました。

お礼日時:2015/10/19 15:13

こんな感じ?



//元データ
create table hoge(日付 date,区分 int,値 int);
insert into hoge values('2015-01-01',1,2500),('2015-01-02',1,2700),('2015-02-01',1,3200),('2015-02-02',1,700),('2015-01-01',2,750),('2015-01-03',2,800),('2015-02-01',2,1100),('2015-02-02',2,1300);

//表示
select date_format(日付,"%Y-%m") as 年月,区分,max(日付) as 日付
from hoge
group by 年月,区分
) as t1
inner join hoge as t2
on t1.日付=t2.日付 and t1.区分=t2.区分;
    • good
    • 0

Select 日付,区分,MAX(値) From TableName


Group By 日付,区分,値

…ではなく?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す