質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

1回答

533閲覧

MYSQL5.7系でSELECT句の結果から条件に該当するものをSELECT

satjun

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/09/02 17:40

前提・実現したいこと

MYSQL5.7系でSELECT句の結果から条件に該当するものをSELECTしたいが、選択ができず悩んでいます。

該当のソースコード

sql

1select 2 b_id 3 , created_at 4 , (select count(*)+1 5 from a 6 where b_id = x.b_id and created_at > x.created_at 7 ) as n 8from a as x 9order by x.b_id, x.created_at desc 10;

上記コードの実行結果

上記のコードを実行すると以下のような結果になります。上記のコードを修正して、以下の結果に対してn=1の数をcountしたいのですが、方法を分かりかねています。

b_id created_at n
1 20/07/18 22:47 1
2 20/03/24 06:08 1
5 20/08/30 19:25 1
6 20/08/29 14:53 2
6 20/08/27 00:00 3

試したこと

以下のようにselect句をサブクエリーで囲ってそのselect結果を条件でcountすれば取得可能かと思ったのですが、できませんでした。

sql

1select 2 count(y.n = 1) 3from( 4 select 5 b_id 6 , created_at 7 , (select count(*)+1 8 from a 9 where b_id = x.b_id and created_at > x.created_at 10 ) as n 11 from a as x 12 order by x.b_id, x.created_at desc 13) as y;

補足情報(FW/ツールのバージョンなど)

MYSQL5.7系

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/09/02 21:49

テーブル定義と元のデータがどういうものか提示されないとなんとも言えません
guest

回答1

0

最後のSQLのcount()をSum()に変更してみて下さい。

結果だけでいいなら以下の記述で。(未検証です)

SQL

1select count(*) 2from a x 3where not exists ( 4 select 1 from a 5 where b_id = x.b_id and created_at > x.created_at 6 )

投稿2020/09/03 00:40

編集2020/09/03 00:49
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問