前提・実現したいこと
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系