タグ

SQLに関するhoxo_mのブックマーク (13)

  • SQLのORDER BY 列番号と式 :: Noboru Saito's page

    きっかけtom__boさんが書かれた8.0.22でのprepared statementの挙動変化 で、ORDER BY に列番号を指定する問題に注目が集まりました。 その中で紹介されていた、 For a prepared statement of the form SELECT expr1, expr2, … FROM table ORDER BY ?, passing an integer value N for the parameter no longer causes ordering of the results by the Nth expression in the select list; the results are no longer ordered, as is expected with ORDER BY constant. 「the results are n

    SQLのORDER BY 列番号と式 :: Noboru Saito's page
    hoxo_m
    hoxo_m 2024/05/30
  • リレーショナルデータを分析するための言語

    let premium_users = select * from users where premium = 1; select count(*) from premium_users; select * from premium_users order by created_at; のようなことがしたいわけですよ。でも無理!ワハハ!! 一貫性のなさ cast(expr as type) という関数のようでそうでもない謎の記法とか(MariaDBリファレンスだと"function"らしいですが)、 '2023-01-01' + interval 1 secondのinterval部分は何なんだとか、文法が複雑すぎる。 人間に厳しい 一貫性を捨てても便利な記法を採用して書きやすくしているのかと思いきや、

    リレーショナルデータを分析するための言語
    hoxo_m
    hoxo_m 2024/05/07
  • もう人間がクエリを書く時代じゃない!SQLクエリの組み立てを自動化するSlack botを開発・導入しました - Pepabo Tech Portal

    こんにちは。SUZURI事業部の@kromiiiと申します。 私のメインの業務はWebアプリケーションの開発ですが、大学院時代のスキルを活かして並行してデータ分析業務も行っています。 データ分析業務ではデータベースのクエリを書くことが多いのですが、私自身SUZURI事業部に配属されたばかりで、テーブルの名前やリレーションを覚えるのが大変でした。そこでクエリの設計を自動化するツールをSlackに導入しました。 その名も tbls-ask bot です。どのようなものか先に見てみましょう。 ユーザーはSlackでメンションする形で、どのようなクエリを実行したいのか自然言語で入力します。 メンションされるとSlack botが起動し、どのDBスキーマを利用するかを尋ねます。 ユーザーがDBスキーマを選択すると、自然言語からSQLクエリを生成し、Slackに返答します。 今回はパブリックに公開する

    もう人間がクエリを書く時代じゃない!SQLクエリの組み立てを自動化するSlack botを開発・導入しました - Pepabo Tech Portal
    hoxo_m
    hoxo_m 2024/05/03
  • サブクエリの書き方を2万文字弱かけてすべて解説する

    これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

    サブクエリの書き方を2万文字弱かけてすべて解説する
    hoxo_m
    hoxo_m 2024/05/03
  • The Querynomicon

    Upon first encountering SQL after two decades of Fortran, C, Java, and Python, I thought I had stumbled into hell. I quickly realized that was optimistic: after all, hell has rules. I have since realized that SQL does too, and that they are no more confusing or contradictory than those of most other programming languages. They only appear so because it draws on a tradition unfamiliar to those of u

    hoxo_m
    hoxo_m 2024/02/07
  • SQLの実行計画の読み方 |

    今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

    hoxo_m
    hoxo_m 2023/05/06
  • 読みやすく、再利用しやすいSQL分析クエリを書くコツ

    こんにちは、Wantedlyでデータサイエンティストをしている樋口です! 自分は過去、分析のためにSQLを書いているとき、以下のようなミスをしていました。 メール開封率を集計したら何故か100%を超えてしまった。でもどこが原因かがわからない メール開封率を集計したのち、クリック率も追加で依頼を受けたが、再利用できるクエリになっておらず、一から書き直した クエリのレビューを依頼したら、複雑すぎると言われてしまった こういった経験がある方は自分以外にもいるのではないでしょうか...! SQLは非常に自由度が高く便利である反面、書き方が個人に委ねられ、複雑・難解になりやすいと感じています。 そこで記事では、自分が実務で学んだ、読みやすく、再利用しやすいSQLクエリの書くコツを紹介したいと思います。個人の経験によるものなので、より良い書き方・考え方もあるかもしれないです。ご了承ください🙏 読み

    読みやすく、再利用しやすいSQL分析クエリを書くコツ
    hoxo_m
    hoxo_m 2022/07/25
  • SQLアンチパターン簡単まとめ

    SQLアンチパターン」について、自分の勉強がてら内容を簡単にまとめました。 「とりあえずSQLは触れてWebアプリが作れる」「シンプルなアプリを実務で作ったことがある」くらいの人が読むととても勉強になると思います。 また、「現場での良くない設計」が詳細に言語化されているので、経験豊富な人でも新たな発見があると思います。 詳しく知りたい方は是非を買って実際に読んでみて欲しいです。 第一章 ジェイウォーク パターン 1カラムにコンマ区切りで値を入れて複数の紐付きを表現しようとする なぜダメか 検索しづらい 文字列カラムの文字数制限という暗黙の制約を受ける バリデーションかけられない 解決策 交差テーブルの作成 第二章 ナイーブツリー パターン 木構造を表現するとき、常に親のみに依存する(parent_idだけ持ってしまう) 隣接リスト なぜダメか 階層を深く掘ろうとするとそのぶんSQLをか

    SQLアンチパターン簡単まとめ
  • AWS、自然言語でデータベースに問い合わせ、データ分析ができる「Amazon QuickSight Q」正式リリース

    Amazon Web Services(AWS)は、インメモリBIツールの「Amazon QuickSight」の新機能として、自然言語で問い合わせができる「Amazon QuickSight Q」を正式リリースしたと発表しました。 Amazon QuickSight Qのベースとなっている「Amazon QuickSight」は、さまざまなデータソースに接続することで、データの分析とビジュアル化を行うBIツールです。 Amazon RDSのデータベースやAmazon AuroraAmazon Redshift、HadoopのAmazon EMR、Amazon S3内のフラットファイル、MySQLOracleSQL Server、PostgreSQLをはじめとして、オンプレミスのデータソースやSalesforce.comなどの外部データソースを含む、さまざまなデータソースに対応します

    AWS、自然言語でデータベースに問い合わせ、データ分析ができる「Amazon QuickSight Q」正式リリース
    hoxo_m
    hoxo_m 2021/09/27
    SQLが滅ぶときが来た
  • 分析用SQLを書くときの思考回路について|だみ〜

    稿では、分析用のSQLを書くときに則っている思考回路について述べて行こうと思います。 この言語化はあまりきちんとされている印象が無いので、自分がそこそこ初めての言語化だと思って頑張ってやってみようと思います。 言い換えれば、私はこういう思考回路でSQLを書きますが、みなさんどうですか、という話でもあります。 あとは、前提として、現代的な分析用の分散エンジンにSQLを投げるときを考えています。それ以外の場合はむしろ非効率になることも多いかもしれません。 0.問題設定今回の題材は、待てばチケットが復活する無料単話があり、有料で無料単話も買える、そして単行購買もできる、というマンガサービスとしましょう。 このサービスの企画者から、チケットで無料単話だけ読むユーザが、もし有料で単話を買うようになったらどれくらい売上が伸びるのか教えてほしい、という依頼が来たとします。 これを仮説形式に直すと、

    分析用SQLを書くときの思考回路について|だみ〜
  • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

    sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し

    すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
    hoxo_m
    hoxo_m 2020/05/16
  • SQL と Pandas の対応表 - Qiita

    トピック SQL のクエリと、Pandas のメソッドの対応表を作成する。 SQL 勉強中のため、備忘録代わりに箇条書き(殴り書き)で書いていく。 Udemy のこちらのコースで勉強していました。 DBやテーブル自体の更新・操作に関するものはこちらにまとめている。(SQL のクエリだけを書き散らかしているだけ) 順序 記述順序 select from join系(+on) where group by having order by limit 実行順序(※) from join系(+on) where group by select having order by limit (※)追記 @nora1962jp さんからご指摘をいただきましたので、コメント内容を追記します。 実行順序 from join系(+on) where SQLについてなら実行順序はonとwhereの順序はonが先

    SQL と Pandas の対応表 - Qiita
    hoxo_m
    hoxo_m 2018/11/12
    良い記事。この記事に興味ある人は『前処理大全』という本がオススメです。https://www.amazon.co.jp/dp/4774196479/
  • SQL style guide by Simon Holywell

    Overview General Do Avoid Naming conventions General Tables Columns Aliasing or correlations Stored procedures Uniform suffixes Query syntax Reserved words White space Indentation Preferred formalisms Create syntax Choosing data types Specifying default values Constraints and keys Designs to avoid Appendix Reserved keyword reference Column data types SQL style guide Overview You can use this set o

  • 1