重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下のような形でDBに登録されています。

iddatecost
12914043132006000
7614043132005000
12914042268004000
54140422680075000
129140431320055000

id 129のものをすべて抽出したいのですが、もしdateが同じだった場合は、同じdateの中でのcostの最大値の行だけ抽出したいです。
このようなことは可能でしょうか。
上記の例でいうと、
12914042268004000
129140431320055000
が取得できればOKです。
あまりmySQLは詳しくないのでselect文でそのまま頂けると嬉しいです。
よろしくお願い致します。

A 回答 (2件)

select id,date,max(cost) as cost


from tbl
where id=129
group by id,date
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2014/07/03 14:30

おなじ日付けでおなじcostの場合どうするのでしょうか?


また日付け「140431」は存在しませんが、単なる数字の比較でよろしいのでしょうか?

とりあえず動けばいいレベルならこんな感じで

select id,date,max(cost) as cost
from tbl
where id=129
group by date

この回答への補足

ごめんなさい。プレビューではちゃんと区切りが見えてたんですが、ただの数字の羅列になってしまいました。

id date cost
129 1404313200 6000
76 1404313200 5000
129 1404226800 4000
54 14042268007 5000
129 1404313200 55000

で、日付はUNIX TIMEです。

補足日時:2014/07/03 13:52
    • good
    • 0
この回答へのお礼

おなじ日付けでおなじcostの場合、どちらの行をとっても同じなので、取りやすい方(後の行でしょうか)です。
日付は数字の比較で大丈夫です。
よろしくお願いします。

お礼日時:2014/07/03 14:01

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

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