タグ

sqlとデータに関するlocke-009のブックマーク (11)

  • データ分析のためのSQLを書けるようになるために

    はじめに 稿では分析用クエリをスラスラ書けるようになるまでの勉強方法や書き方のコツをまとめてみました。具体的には、自分がクエリを書けるようになるまでに利用した教材と、普段クエリを書く際に意識していることを言語化しています。 想定読者として、SQLをガンガン書く予定の新卒のデータアナリスト/データサイエンティストを想定しています。 勉強方法 基礎の基礎をサッと座学で勉強してから、実践教材で実際にクエリを書くのが望ましいです。 実務で使える分析クエリを書けるようになるためには、実務経験を積むのが一番良いですが、だからといって座学を御座なりにして良いというわけではありません。SQLに自信がない人は、一度基礎に立ち返って文法の理解度を確認した方が良いと思います。 書籍 SQL 第2版: ゼロからはじめるデータベース操作 前提として、SQLに関する書籍の多くがデータベース運用/構築に関する書籍がほ

    データ分析のためのSQLを書けるようになるために
  • DBサーバでUPDATE/DELETEを打つ安心感を高める

    近年はDBサーバで直接UPDATE/DELETE文を発行する場面はかつてより減ったように感じますが、引き出しとして持っていて損はないと思ったので私が普段やっている方法をメモしておきます。 プロトタイピングだったり、開発環境でも有効なので手癖にしておくのは有効だと考えます。 MySQLを例に書いていますが、対象のRDBMSは特に限定されません。 1. 対象のレコードを下見する まずはこれから更新する対象を見ておきましょう。 mysql> select * from books where id=1; +----+-----------+-----------------+-------+ | id | author_id | title | price | +----+-----------+-----------------+-------+ | 1 | 1 | Learning UPDA

    DBサーバでUPDATE/DELETEを打つ安心感を高める
  • SQL で Matrix Factorization を実装しました - TVer Tech Blog

    こんにちは データを眺めている森藤です TVer ではたくさんのデータがあって、どこをほっくり返してもなんか有用な知見が出てくるので毎日楽しいです。 現状 さて、現状はまだまだこれからなのですが、レコメンドのアルゴリズムや実装について考えるのも仕事の一つです。 レコメンドといえば、いろいろな手法やベースとなる考え方、タイミングなど様々なものがありますが、そのうちの一つとして、協調フィルタリングというものがあります。 これは端的に言うと、「これを見ている人はこれも見ています」的なやつです。 ただ、協調フィルタリングは実世界において適用が難しく、TVer でも多分にもれずそのまま適用するには課題があります。 大きな課題が「ユーザは限られたコンテンツ(エピソード)しか閲覧しないため、これを見た人はこれも見ています」と適用することが難しい、というものです user_id series_id 1 3

    SQL で Matrix Factorization を実装しました - TVer Tech Blog
  • SQLが突然遅くなる原因と対応方法 | SE日記

    ここではORACLEデータベースのSQLが急に遅くなる原因と対処方法について紹介してきます。 SQLの実行計画の見方や確認方法については↓で紹介していますので参考にしてください。 >>【ORACLESQLの実行計画の見方 >>【ORACLESQLの実行計画を取得する方法 SQLが突然遅くなる原因と対処方法 SQLが突然遅くなる原因を3つ紹介しています。 1.統計情報が古い 2.実行計画が最適でない 3.リソース不足 以上の3つです。 以降でもう少し詳しく紹介していきます。 1.統計情報が古い ORACLESQLを実行するとき、表の統計情報を元にどのようにしてデータを取得するか、実行計画という計画を作成します。 表の中のデータが増えたり減ったり、月末処理などで大量の更新がかかりデータの内容が大きく変わってしまったりすると表の統計情報が古くなっていることがあります。 そのとき、最適な実行

    SQLが突然遅くなる原因と対応方法 | SE日記
  • 『データ分析のためのSQL勉強会〜初級編〜』資料公開|高橋 光 | 著書『データ分析力を高める ビジネスパーソンのためのSQL入門』

    このでは、無料で公開しているnoteの内容をさらに丁寧に分かりやすく、体系化させてアップデートした内容となっています。 noteの内容を立ち読みだと思ってもらい、より丁寧に学びたい場合は是非書籍を読んでもらえると嬉しいですmm これからSQLを学びたいと思っている方向けに作成したSQL勉強会の資料を公開します!(以下の方向けの勉強会資料です) SQLをこれから学びたい人 仕事SQLを触り始めたけどイマイチよくわからない人 データ集計やデータ分析をエクセル使ってやってる人 資料こちらから最新の資料をダウンロードして下さい。 (※「Source code (zip)」からダウンロードして下さい) 資料の構成は以下の通りです。 docs PDF資料 演習問題など含めて全部で約200ページくらいあります data ハンズオン用テストデータ csvファイル3つ script ハンズオン用テストデ

    『データ分析のためのSQL勉強会〜初級編〜』資料公開|高橋 光 | 著書『データ分析力を高める ビジネスパーソンのためのSQL入門』
  • OracleSQL入門-GROUP BY・DISTINCTを使った重複の削除

    取得したデータの重複を削除して表示する SQLでデータを取得した際に、重複しているデータを削除して表示したいことが度々あります。そんなときに役立つのが「GROUP BY句」または「DISTINCT」です。 例えば、学生表の「年」が1のデータは組が何組まであるのか調べたいとしましょう。 SELECT 組 FROM 学生 WHERE 年 = 1; ↑の結果では組が表示されていますが、同じ組が重複して表示されているため何組まであるかは自分で見て判断しなければいけません。それは非常に効率が悪いので、重複をなくして表示してみましょう。

  • 重複行のまとめ方はGROUP BY?DISTINCT? - Qiita

    と記載すべきなんだろうけど、実際に測ってみるとGROUP BYの方が実行速度が早かったり。この辺りは内部でどういう処理をしているのか気になるところ。 だってGROUP BYで重複レコードがまとまるのはグループ化したから結果的にまとまったという、ある意味副作用なわけですし…DISTINCTの立場は一体…。 何万行もあるレコードをまとめる場合はEXISTS句を使う方が効率がいいです。先ほどの2つは内部で暗黙のソートがなされますが、EXISTS句はそうではないのでこちらのほうが高速といえますね。 追記 (2018/04/17) 結局どっちを使えばいいの?とフレンドからツッコミ今更になって少し更新してみた。 試しにこんなテーブルを作ってみる。 CREATE TABLE `company_users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

    重複行のまとめ方はGROUP BY?DISTINCT? - Qiita
  • 「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita

    目次 なぜSQLのスタイルガイドが重要なのか この記事の目的 この記事の対象者 分析SQLスタイルガイドの指針 基ルール 命名規則 インデントルール 別名ルール joinルール クエリ分割ルール ⭐ コメント欄で「いや私はこう思う!」という意見をたくさんいただきました!ぜひそちらも御覧ください!(決して揶揄ではないです) なぜSQLのスタイルガイドが重要なのか SQLはプログラミング未経験者でもとっつきやすい言語と言われ、エンジニアや分析を業としていない人でもSQLを使う機会が増えてきていると思います。 そんなSQLですが、こちらのブログでも指摘されている通り、一般的なスタイルガイドが定まっていません。スタイルガイドとはコードの書き方マナーようなもので、どこで改行するか、空白はいくつ入れるか、大文字を使うかなどの諸々を指します。 もしスタイルガイドが無いとこんな事が起こります コードに

    「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita
  • 「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita

    目次 なぜSQLのスタイルガイドが重要なのか この記事の目的 この記事の対象者 分析SQLスタイルガイドの指針 基ルール 命名規則 インデントルール 別名ルール joinルール クエリ分割ルール ⭐ コメント欄で「いや私はこう思う!」という意見をたくさんいただきました!ぜひそちらも御覧ください!(決して揶揄ではないです) なぜSQLのスタイルガイドが重要なのか SQLはプログラミング未経験者でもとっつきやすい言語と言われ、エンジニアや分析を業としていない人でもSQLを使う機会が増えてきていると思います。 そんなSQLですが、こちらのブログでも指摘されている通り、一般的なスタイルガイドが定まっていません。スタイルガイドとはコードの書き方マナーようなもので、どこで改行するか、空白はいくつ入れるか、大文字を使うかなどの諸々を指します。 もしスタイルガイドが無いとこんな事が起こります コードに

    「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita
  • SQL文 DELETE・TRUNCATE・DROPの違い - Qiita

    なんとなく違いが分かるようにまとめてみました。 DELETE文 テーブル内のデータを全削除または条件に一致したデータを削除する。 WHERE句で条件指定しないと表内の全てのデータが削除されるので注意してください。 COMMITしていなければロールバック可能です。 ※MySQLでCASCADEテーブル定義してある場合、親テーブルの削除と同時に子テーブルの削除を行うこともある。 https://qiita.com/masapiko/items/72b7f274585dac7ca0da TRUNCATE文 テーブル内のデータを全削除する。

    SQL文 DELETE・TRUNCATE・DROPの違い - Qiita
  • SQL素人でも分かるテーブル結合(inner joinとouter join) - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    SQL素人でも分かるテーブル結合(inner joinとouter join) - Qiita
  • 1