タグ

SQLとMySQLに関するdrumscoのブックマーク (2)

  • MySQLで相関サブクエリを実行する

    相関サブクエリとは、SQLの実行結果の行と行を比較することです。 ある行とある行の時間差を求めることで何秒間隔でデータが登録されているかがわかったり、 ある行とある行の売上差を求めることで、売上の上がり下がりをだしたりできます。 相関サブクエリを知らなければ、 SELECTしたデータをもとに、 プログラムを書く必要がありますが、 データベースだけでもある程度のことはできてしまうのです! ポイントは2点あります。 (ポイント1)必要なデータだけをソートして抜き出し、行番号を振る このときに、ある行と次の行が比較対象となるようにソートしましょう。 (ポイント2)自己結合をして比較する 以上の2点です。 必要なデータだけをソートして抜き出し、行番号を振 必要なデータを抜き出すのは、whereで条件をつけます。 ソースするのはもちろんorder byです。 結果に行番号をつけることがポイントです。

    MySQLで相関サブクエリを実行する
    drumsco
    drumsco 2021/01/28
    MySQL8.0からはWindow関数が実装されている。なのでこれは 5.x の場合を想定したもの。rownum を生成するために自動変数 (select @i:=0)tmp を使うテクニックあり。
  • SQL::Translator::Diff

    NAME SQL::Translator::Diff - determine differences between two schemas DESCRIPTION Takes two input SQL::Translator::Schemas (or SQL files) and produces ALTER statements to make them the same SNYOPSIS Simplest usage: use SQL::Translator::Diff; my $sql = SQL::Translator::Diff::schema_diff($source_schema, 'MySQL', $target_schema, 'MySQL', $options_hash) OO usage: use SQL::Translator::Diff; my $diff =

    SQL::Translator::Diff
  • 1