アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQLについてお聞きしたいです。番号カラムの中で最大の数字をもつフィールドと
同じコードを持つデータを、表から全て取得したいと思っているのですが
書き出すとGROUP BYの式が間違っているというエラーが出てしまいます。
SELECT *
FROM 表
GROUP BY コード
HAVING MAX(番号) = コード
どう調べればいいのか分からず四苦八苦しています。どこを直せばよいでしょうか?

A 回答 (3件)

SELECT *


FROM 表
WHERE コード IN(
SELECT コード
FROM 表
GROUP BY コード
HAVING MAX(番号) = コード
);

でどうでしょうか。
GROUP BYを使うときは、SELECTするカラムと同一でなくてはなりません。
もうちょっといい方法もあるように思いますが。

この回答への補足

ありがとうございます。参考にさせていてだき書き直してみましたが
右カッコがありませんとエラーになってしまいました…

補足日時:2013/05/16 11:05
    • good
    • 0
この回答へのお礼

ありがとうございます!
試してみます

お礼日時:2013/05/20 11:05

SELECT * FROM 表 WHERE 番号=(SELECT MAX(番号) FROM 表)


です。

この回答への補足

ありがとうございます。コードはどこに入れ込めばよいでしょうか?

補足日時:2013/05/16 11:03
    • good
    • 0
この回答へのお礼

ありがとうございます!
試してみます

お礼日時:2013/05/20 11:05

SELECT *


FROM 表
WHERE コード = (
SELECT コード
FROM (SELECT コード, 番号, MAX(番号) OVER() max番号 FROM 表)
WHERE 番号 = max番号
);

とかでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます!
試してみます

お礼日時:2013/05/20 11:04

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

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