今朝方、CSVに対してSQLを実行できる「csvq」というライブラリを知りました。業務の関係で快適にCSVを操作する方法を求めていたこともあって、操作感等含めて試してみました。 mithrandie/csvq 特徴 関係するオプションも合わせて表記してみました。 標準のデリミタがコンマ--write-delimiter 出力先指定オプションがある --out 色つけできる --color 標準で罫線がついてる--format タイムゾーンの設定ができる --timezone 手軽に対話シェルとして実行できる Ambiguous Character を全角文字の幅で表示可能--east-asian-encoding ゼロ幅スペースを半角文字としてカウント--count-format-code 改行コードを指定可能--line-break CSVに対して各種操作を行う際に、あると助かるオプショ
MySQL の AUTO_INCREMENT 属性を使っている場合、整数型の上限に達しないか注意する必要があります。たとえば INT 型だと約 21 億 4700 万、unsigned が指定されていると倍の約 42 億 9400 万が上限です。 MySQL :: MySQL 5.7 Reference Manual :: 11.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT 上限に達する前により大きな型にマイグレーションしなければなりませんが、そのためには上限まであとどれくらいかを調べる必要があります。各テーブルで LAST_INSERT_ID() を叩けば最後に生成された AUTO_INCREMENT の値を取得できますが、すべてのテーブルを網羅的に調べる必要がある
データ分析部インターン生の小川です。インターンでは主に動画収集のロジック実装に取り組んでいました。 Gunosyではログの管理にRedshiftとBigQueryを使用しています。 サービスはAWS上で動いているものも多いので基本はRedshiftで、ログの量が多いものやアドホック分析に用いるものはBigQueryに格納しています。 この2つのサービスでSQLの書き方が微妙に異なるところがあり、もどかしい経験をしたので、今回は、よく使うSQLの文法でRedshiftとBigQueryで表現が異なる所をまとめてみようと思います。 BigQueryの導入についてはこちらの記事をご覧ください。 また、この記事ではBigQueryはStandard SQLで記述していきます。 data.gunosy.io 日付・時刻関数 現在時刻(UTC) 現在時刻(JST) 現在の日付(UTC) 現在の日付(J
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
はじめに PostgreSQLをメインに使うようになってからなんか書ける方法でしか書けないのでちゃんと公式のドキュメントを読みました。 日本語のドキュメントが整っているのはありがたいことです。 小並な感想を述べると大変勉強になりました。 - 書く量が減った - 他でゴニョゴニョせずSQLだけで完結するようになった - なんか楽しくなった その中でよく使うシリーズを下記に記します。 日付ごとに集計したい時 SELECT generate_series::date FROM generate_series( '2017-08-21'::date, '2017-10-09'::date, '1 day')
SQL Server Management StudioでのSQL作成時に、SQL文を整形してくれるツールが無いかと思い探したところ、Poor Man's T-SQL Formatterというアドインが紹介されているのを見つけました。 SQL Server Management Studio で SQLを一発整形 – gomokulog 作成元のサイトはこちら。 www.architectshack.com インストールすると、SQL Server Management Studioのメニューバー、[ツール]のところに「Format T-SQL Code」というのが追加されます。対象SQLをマウスで選択した状態でこれを選ぶと一発整形。また、ショートカットの場合「Ctrl-K, Ctrl-F」でも実行されるのでいちいちマウスに手をやる必要もありません。 こちらは、仕事で使っている SQL S
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
下図のように、「縦持ち」のテーブルを「横持ち」に置き換えることをピボット(pivot)、逆に「横持ち」のテーブルを「縦持ち」に置き換えることをアンピボット(unpivot)と呼びます。これらの変換を行なう方法をまとめました。 標準SQL Presto Hive Pandas (Python) 標準SQL SQL-like なクエリ言語ならどこでも使える書き方です。 Pivot SELECT uid, max(CASE WHEN key = 'c1' THEN value END) AS c1, max(CASE WHEN key = 'c2' THEN value END) AS c2, max(CASE WHEN key = 'c3' THEN value END) AS c3 FROM vtable GROUP BY uid ;
http://www.momo-lab.net/kibidango/cbbs.cgi?mode=one&namber=883&type=167&space=135&no=0 SQL Server / MSDE で、テーブルや列にコメントを定義するためのストアド。 EXECUTE setcomment N'テーブル名', NULL, N'コメント' とか EXECUTE setcomment N'テーブル名', N'列名', N'コメント' って感じで利用。 # Oracle でいう所の # COMMENT ON TABLE テーブル名 IS 'コメント'; # COMMENT ON COLUMN テーブル名.列名 IS 'コメント'; # みたいな感じで。 <xmp> ---------------------------------------------------------
はじめに 本文書はSQLのスタイルガイドです。 PythonやRubyのようなプログラミング言語には有名なスタイルガイドがあり、共通のレイアウトルールに沿ったインデントや命名規則に則ったコードが生み出されています。 一方、SQLには知名度のある統一されたスタイルガイドがありません。 そのため、思いのままに書かれたSQLが散見されます。 もちろん、SQLを使ってアドホックな分析を行う場合は、必ずしもルールに沿う必要はなく、効率よく書いても良いと思います。 しかし、Webサービスやバッチの中に組み込むようなもの、つまり自分以外の誰かに読まれるSQLは、多くのプログラミング言語同様に何らかのスタイルガイドに沿うことで多くのメリットを享受できると思います。 クエリが構造化され、可読性が高まる バグの発見や修正が容易になる 改行位置やインデントなどのフォーマットの悩みが解消される スタイルガイドを共
いまだにEFとか使いこなせず生のSqlを書きまくっているので、SqlCommandでエラーを吐いた時にSql Server Management Studioでデバッグしたくなったりします。パラメータクエリを利用している場合は、Sql Server Management Studioにパラメータを定義したりするのが辛いため、デバッグ用のsqlをテキストファイルに出力するようにしてみました。不格好ですいません。 同様の悩みの方、いらっしゃいましたら情報共有などよろしくおねがいします。 NuGetで以下してます。 PM> Install-Package IX-MAIN using System.Data.SqlClient; namespace Implem.Sample { class Program { static void Main(string[] args) { var cmd =
任意のSELECT文から SELECT COUNT(*) FROM (SELECT ~ ) を動的に生成する (ScriptDomを使ったSELECT文の書き換え)SQLSQLServer.NET こちらの記事が大変参考になりました(というよりもこちらの記事を見て思い付きました)。 T-SQL の パーサーとジェネレーター(ScriptDom)の紹介 - お だ のスペース ScriptDom でクエリを改変する - お だ のスペース 動機 ページング処理用に検索結果の総レコード数を取得するため、検索 SQL を文字列置換して SELECT COUNT(*) FROM ([元の SQL]) に書き換えようと頑張っているコードを見かけました。 しかし、単純に SQL を COUNT(*) のクエリで包むだけでは不十分で、内側の SQL から ORDER BY 句を取り除く必要があります。(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く