mysqlでtblというテーブルにnum,count,tagというフィールドがあります。

tagが同じものの中でnumが最大で、かつ、countがN(任意の整数)以上という条件でselectしたい場合、
SQL文はどんな感じになるのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/07/01 22:58:20
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:freemann No.2

回答回数335ベストアンサー獲得回数55

ポイント60pt

SELECT * FROM tbl AS a INNER JOIN (SELECT tag,max(num) AS num FROM tbl WHERE cnt >= N GROUP BY tag) AS b

ON a.tag = b.tag AND a.num = b.num

WHERE a.num >= N

こんな感じになるかと思います。

id:GanbareNIPPON

ありがとうございます。

2010/07/01 22:57:50

その他の回答1件)

id:freemann No.1

回答回数335ベストアンサー獲得回数55

ポイント10pt

基本的なSQLで大丈夫だと思います。

select tag, max(num) from tbl where count >= N group by tag

id:GanbareNIPPON

すいません。

条件ではtag、num、countを使うのですが、フィールドは他にもあります。

なので、SELECT * で始まるようにしたいのですが、できますでしょうか?

2010/06/27 19:21:13
id:freemann No.2

回答回数335ベストアンサー獲得回数55ここでベストアンサー

ポイント60pt

SELECT * FROM tbl AS a INNER JOIN (SELECT tag,max(num) AS num FROM tbl WHERE cnt >= N GROUP BY tag) AS b

ON a.tag = b.tag AND a.num = b.num

WHERE a.num >= N

こんな感じになるかと思います。

id:GanbareNIPPON

ありがとうございます。

2010/07/01 22:57:50
  • id:doropon
    とりあえずfreemannにお答えいただいたものってお試しになられましたか?
    試して*できるかな。ってしてみると自己解決が近付くと思います。

    select *,tag, max(num) from tbl where count >= N group by tag

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません