のんびり精進

調べた情報などをおすそ分けできれば。

MySQL

【SQLite/MySQL】グループごとの上位N件ずつを取得

MySQL でグループごとに上位のN件ずつを取得する方法は以前に書きました。 kabochapo.hateblo.jp サーバサイドの MySQL はこれで解決しました。 しかし、スマホアプリ側で似たテーブル構成にしておいて同様のクエリを使いたくてもできません。 そこで、Andro…

【MySQL】グループごとの上位N件ずつを取得

Window 関数を使う方法 MySQL 8.0.2 で導入された Window 関数をまず使ってみます。 参考にしたのは次のページです。 「ROW_NUMBER() - Oracle, SQL Server and PostgreSQL」と書かれているので MySQL 以外でも共通で使えるはずです。 www.sqlines.com SELEC…

【MySQL】NOT EXISTSのサブクエリでOR条件を指定すると遅い

3年以上前に Twitter にメモ的に書いたものなのですが、忘れたときに遡って探し出すのが大変なのでこちらに再メモ。 SELECT * FROM tb1 WHERE NOT EXISTS ( SELECT * FROM tb2 WHERE tb2.col1 = tb1.col OR tb2.col2 = tb1.col ); くっそ遅くて、実行計画を…