タグ

SQLに関するt1mvverrのブックマーク (7)

  • あまり知られていないPostgreSQLの機能 | POSTD

    あなたが知らない既存機能があるかもしれません! マイクロソフト社は2006年、Microsoft Officeの新バージョンで追加してほしい機能について、顧客調査を実施しました。驚いたことに、ユーザが希望した機能の90%以上はすでに実装されており、その存在が知られていないだけであることが判明しました。機能の「見つけにくさ」の問題の解決策として同社が考案したのが、現在のMicrosoft Office製品でおなじみの「リボンUI」です。 この問題はOfficeに限ったものではありません。日々使用するツールの機能をすべて把握している人はほとんどいません。PostgreSQLのように大規模なツールであればなおさらです。数週間前にPostgreSQL 14がリリースされたばかりなので、この機会にPostgreSQLのあまり知られていない機能に注目してみたいと思います。 この記事では、Postgre

    あまり知られていないPostgreSQLの機能 | POSTD
    t1mvverr
    t1mvverr 2022/05/24
    postgres使う人だからありがたい。「UPSERTでINSERT件数取得」「DISTICTON句で各グループの最大値を簡単取得」「ドル引用でjson値を簡単生成」は結構役立ちそう。
  • 『継続して○○した日数』とその最大値をSQLで求める - REVISIO Tech Blog

    こんにちわ。データ部の長野です。 TVISION INSIGHTSのデータ部では、複雑なデータ抽出をする機会が多々あります。 今回は最近おこなった複雑なデータ抽出ロジックの1つ、 「『継続して○○した日数』とその最大値」 をSQLで求める方法を紹介します! ======= 2021/06/26追記 ======= 記事中に積み上げ和を表現するのに、SUM(not_cont_date_flg) OVER (PARTITION BY user_id) AS cum_not_cont_date_flgというコード記述があるのですが、以下のような御指摘を受けました。 先日の「連続で結果xが出た回数」の時もでてきたのだけど、もしかしてPostgreSQL/redshiftとBigQueryでwindow関数のsumの挙動が違う?BigQueryだと積み上げにならないでウィンドウごとの和(user_i

    『継続して○○した日数』とその最大値をSQLで求める - REVISIO Tech Blog
  • GitHub - codemix/ts-sql: A SQL database implemented purely in TypeScript type annotations.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - codemix/ts-sql: A SQL database implemented purely in TypeScript type annotations.
    t1mvverr
    t1mvverr 2020/09/25
    SQL結果でRDBから自動で型を生成するものと思ったら、型をSQLライクで定義できるって物か。まあ、いずれRDBもできる気はするけど。
  • O/Rマッパーによるトラブルを未然に防ぐ

    ORMがトラブル起こすから嫌い」なんじゃなくて、「ORMが起こすトラブルが解決できないから嫌い」ってのがほんとのところじゃない?だったら解決方法を知ればいいんじゃね?というお話。「N+1問題」もろくに知らずにORMを批判せんでほしい。

    O/Rマッパーによるトラブルを未然に防ぐ
  • ドメインロジックとSQL - Martin Fowler's Bliki (ja)

    以下の文章は、Martin Fowler による Domain Logic and SQLの日語訳である。 データベース指向ソフトウェア開発者とメモリ上(in-memory)アプリケーションソフトウェア開発者との間のギャップは、ここ数十年、徐々に広がってきている。このギャップが原因で、データベースの機能(SQLやストアドプロシージャ)をどのように扱えばよいのかという議論が数多く巻き起こっている。ここでは、ビジネスロジックを SQL に置くべきか、それともメモリ上のコードに置くべきかといった問題について、主にパフォーマンスと更新性の観点から考察を行う。考察には簡単な例を使うが、SQL クエリはしっかりとしたもの(rich SQL queries)を用いるので悪しからず。 エンタープライズアプリケーション(訳注:以下、EA)構築に関する(私の近著『P of EAA』など)を読むと、ロジック

  • 一行入魂 PostgreSQLでパフォーマンスに影響しない論理削除

    論理削除を削除フラグや削除日時のカラムで実装すると、カーディナリティが低いので検索でのパフォーマンスが良くないです。 そこで、削除用のテーブルを作り移動することにします。 スキーマーを以下の三つにわけます。 source(全てのレコード) public(生きているレコードのみ) garbage(削除されているレコードのみ) sourceスキーマーにテーブルの定義を行い publicスキーマーとgarbageスキーマーにはテーブル継承したテーブルを置きます。 通常はpublicスキーマーを検索すればよいです。 もし、削除されているものも含めて欲しい場合、sourceスキーマーを検索できます。 スキーマーを作るSQL CREATE SCHEMA IF NOT EXISTS source; CREATE SCHEMA IF NOT EXISTS garbage; テーブルを作るSQL DROP

  • なぜ、正規化なのか。 - どんみや:楽天ブログ

    2009.12.22 なぜ、正規化なのか。 カテゴリ:SQL-SERVER 正規化すべきか、しないべきか。 結論から正規化をすべき。 ただし、この正規化には注意が必要である。 正規化を行うことにより、下記のメリットとデメリットがある。 メリット ・データの冗長性(重複性)がなくなる。 ・なにより、業務的に1つ1つの項目の意図が明確になる。 ・全体的にみてデータ量が減る。 ・ER図(リレーション図)を確認するだけで、業務要素が理解できる。 ・テーブル構造だけで、ありえないデータの発生をブロックできる。 デメリット ・テーブルがバラバラになり、データ取得時にJOIN操作が増える。 ・そのため、速度が低下する。 ・コーディングが複雑になる。 ここで、重要だと感じるのが、あくまでも正規化は業務要素を リレーショナルデータベースで管理する上での、必要項目の 整理整頓である。 システム開発する中で、例

    なぜ、正規化なのか。 - どんみや:楽天ブログ
    t1mvverr
    t1mvverr 2018/12/26
    CRUDのうち、CUは正規化したテーブルに、Rはビューやプロシージャで合体させたテーブルにすればいいのか。
  • 1