SQL
前回の記事で下記のPythonコードから、astとtokenizeモジュールを用いてJSONに構造化する方法を記しました。 from dataclasses import dataclass @dataclass class LogA: """Aの情報を表すログ""" __logname__ = "log_a" a1: int # Aの1つ目の情報 a2: str #…
概要 NBAスタッツ分析について 分析の動機 スタッツの計算 ChatGPTへの事前入力内容 前提 ChatGPTへの事前入力内容 スタッツの計算1 スタッツの計算2 スタッツの計算3 スタッツの計算4 概要 この記事では、生成AI(Chat GPT無料枠)を用いてNBAのスタッツを…
Cleveland Cavaliersがレギュラーシーズン開幕から15連勝を記録しました。 www.youtube.com「歴代の開幕からの連勝数」を導出するクエリを考えたので防備録を残します。 前提として、全試合のチーム単位でのスタッツをnba.leaguegamelog_teamというテーブル…
概要 解法1 解法2 まとめ 概要 ここに2013-14のレギュラーシーズンの全選手・全試合のスタッツ情報があります。 例として一部を表示します。このようなスタッツデータが26401件あります。 PLAYER_NAME GAME_DATE GAME_ID MATCHUP PTS AST REB BLK STL Nassir…
はじめに grep型 index型 基本事項 転置インデックス stopword トークンサイズ 実験 準備 テーブル作成・データ挿入 インデックスの確認 全文検索を実行してみる N-gramパーサーの使用 MeCabパーサーの使用 参考 はじめに 「全文検索」とは複数の文書から特…
DBMS クエリ評価 一時メモリ データキャッシュ ログバッファ ワーキングメモリ DBMS DBMSの役割は下記図のようである。 クエリ評価 我々は、データを探すときに「何を、どのように」探すかを指定する必要がある。 何を:xxxの条件に合うデータを どのように…
DDLとは 暗黙的コミットとは DDLの暗黙的コミットの例 参考 DDLとは DDL(Data Definition Language)とは日本語では「データ定義言語」と言い、一言で言えばCREATE, DROP, ALTER文のことです。 暗黙的コミットとは DDLではトランザクションを張れません。 D…
はじめに Fakerについて ダミーデータの挿入 tableの準備 挿入スクリプトを書く データの確認 はじめに こちらの記事ではUNIONとCROSS JOINを用いてダミーデータをSQL内で生成する方法を書きました。 memo.geso.site今回はPythonのFakerというモジュールを用…
準備 データベースの作成 データの用意 実験 1スレッドでの実行 16スレッドでの実行 感想 参考 準備 データベースの作成 $ docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secr…
クエリの実行速度の実験などで100万件規模のレコードを操作したい場合の環境を構築する方法をまとめました。 環境構築 コンテナ作成 DB作成 データ挿入 考え方 テーブルの作成 実際に100万件のダミーデータを挿れてみる 追記 環境構築 コンテナ作成 $ docker…
準備 JSON型カラムを持つテーブルの作成 JSON型のレコードの挿入 値の抽出 配列の操作 参考 準備 $ sudo docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secret-pw -h127.0.0.1…
準備 空間情報の型 空間情報の表し方 空間情報に対しての関数 地球上の位置情報 参考 準備 $ sudo docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secret-pw -h127.0.0.1 -P330…
目次 事例 環境の用意 MySQLのコンテナを立ち上げ MySQLクライアントから接続 データの準備 データベース作成 テーブルの設計 データの挿入 データの確認 JSONに対する基本操作 JSONのあるキーの値を取得 配列を平坦化 商品のカテゴリごとにグループ化 事例 …
SELECT文を多く使う仕事に再び就いたので復習がてらに代表的なSELECT文をまとめてみました。 『達人に学ぶSQL徹底指南書』から良さそうな例を抽出して書きます。 CASE文 例1 例2 例3 テーブル同士のマッチング 例4 CASE式の中で集約を使う Window関数 例1 自…
練習 参加記 練習 用意されたテーブルから要求されたビューになるようなSQLを書くコンテストがありました。 第4問は縦に並んだレコードを横にする問題で、`GROUP BY`と`SUM(CASE WHEN 条件1 then x ELSE 0 END)`を使えば解けました。自分の回答 topsic-conte…
こちらの問題集から、厳選した問題の回答記録を記します。 Q13 2人以上か、それが問題だ 自分の解法 エレガントな解法 Q14 電話とFAX 自分の解法 解答 エレガントな解答 Q30 買い物の平均サイクル 自分の解答 Q36 一人二役 自分の解法(本の解法4とほぼ同じ…
前提 タイムシーケンス図的理解 悲観的ロック 楽観的ロック 前提 複数のクライアントが同じファイル(レコード)を編集する際に競合を防ぐ方法として排他制御がある。 排他制御の方法として悲観的ロックと楽観的ロックがある。まずは、一般的な話 説明 前提 …
PythonなどのアプリケーションからSQLを実行する際のポイントを個人的にまとめてみました。 Python関数よりもSQL関数 NG OK bulk NG OK エラー処理 NG OK Python関数よりもSQL関数 基本的にPythonの速度はSQLの速度と比べて非常に遅いため, SQLで実行できる…
こちらの教材のうち、学んだ章についてのメモになります。 1章 ジェイクウォーク カンマ区切りにすることによるデメリット 11章 ファントムファイル(幻のファイル) ファイルを外部に格納することのデメリット SQLとファイルへの操作が連動していないとき S…
ローカルのMySQLのdatabaseをdumpする DockeerのMySQLサーバーを建てる SELECT した結果を別テーブルに流し込む SELECTの結果をCSVに出力 テーブルの構造を見る 結果をlessで見る サーバーや接続情報を見る sqlalchemy load_only()関数 ローカルのMySQLのdat…
JavaScriptによるレンダリング避け スタッツサイトは, クライアントのレンダリングによって表が表示されているパターンが多いです. そのような場合は, seleniumなどでバックグラウンドでブラウザで操作しHTMLを取得するようにします. def get_soup_by_url(ur…
SQLで参考になったパターンを集めてみました。 重複レコードの削除 ランキングの求め方 col_1...col_nがすべてNULLのレコードを返す col_1...col_nのいずれかがNULLのレコードを返す 連番で欠けがあるかを確認する 連番のうち一番最初の欠損値 NULL同士も考…
トランザクションとACID特性 ACID特性とはトランザクションが満たすべき特徴。 原始性(Atomicity) 一貫性(Consistency) 独立性(Isolation) 耐久性(Durability) 原始性(Atomicity) 一連のものとして定義された処理がすべて完了するか、一つも実行さ…
成果物 クエリの出力結果をHTMLにするサービスにて表出力しスクショしたものです。 2020-21シーズンMVP候補の比較ポジションCでMVP受賞者の比較歴代MVPの比較 作成の経緯 選手の偉大さをスタッツから読み解きたい場合、技術の全体的な向上や戦術の流行の変化…
NBA statsのテーブルから分析ネタをSQLで書いたのでメモ 最も得点をした選手 01/12 00:00 JSTでのスタッツ mysql> SELECT P.player_name, floor(SPP.PTS * SPP.G), season FROM season_per_player AS SPP, player AS P WHERE P.player_id = SPP.player_id AN…