前回 Oracleの日付操作 - 鶏頭のプログラム の記事でOracleの日付操作について記載しました。 今回はPostgreSQLの日付操作について記載します。 今 SELECT current_timestamp; SELECT now(); 今日 SELECT current_date; 明日 SELECT current_timestamp + '1 day'; SELECT now() + '1 day'; SELECT current_date + 1; 昨日 SELECT current_timestamp + '-1 day'; SELECT now() + '-1 day'; SELECT current_date - 1; ひと月後 SELECT current_timestamp + '1 month'; SELECT now() + '1 month'; ひと月前
(*1) LEFT/RIGHT関数の方が可読性が良いが、環境によって型チェックエラーに引っかかったのでSUBSTRING系を使用 (*2) 指定書式は様々 Redshift / PostgreSQL Redshift: 1.0 postgreSQL: 8.4.20 文字列抽出は SUBSTRING LEFT関数の方が可読性が良いが、環境によって型チェックエラーに引っかかったのでSUBSTRINGを使用 型変換は CAST Redshiftは TO_* 関数未サポート 文字列結合は "||" INTERVAL値はクォート要 /* 5秒単位 */ SELECT CASE /* 5秒単位 */ -- 0〜4秒はhh:mm:s5 WHEN SUBSTRING(CAST(_timestamp AS VARCHAR), LENGTH(CAST(_timestamp AS VARCHAR)) - 1 +
PythonからPostgreSQLに接続してみます。 クライアントはUbuntu 12.10。 サーバーはFreeBSD 10.0 + PostgreSQL 9.3.2です。 Psycopg2のインストール PythonからPostgreSQLに接続するライブラリはいくつかあるようです。 http://wiki.postgresql.org/wiki/Python Psycopgに「Most popular libpq-based driver」と記載されているので、これを使うことにしました。 聞いたことある名前だなと思って探してみると、以前H2 DataBaseに接続するのに使ってました。 H2 Database EngineにPythonから接続する(psycopg使用) インストールは以下のコマンドで行いました。 $ sudo apt-get install python-dev
PostgreSQLをPythonから扱うには、いくつかの方法がありますが、ここでは、Windows 10で、psycopg2を使用して接続する方法について説明します。 psycopg2について psycopg2の 公式サイト からダウンロードすることができます。Windows 10では、以下の手順でインストールしてください。 画面中央部のWindows port of Psycopgをクリックしてください。 自分の端末に該当するファイルをクリックしてください。(本サイトでは、Python3.5の64Bit版を選択して作業を進めています。) ダウンロード後、ファイルを実行します。次へボタンをクリックしてください。 Pythonのインストールフォルダが指定されていることを確認して、次へボタンをクリックしてインストールを進めてください。 サンプルプログラム #!/usr/bin/python3
ここ数年、Pythonの人気が高まっています。2016年2月時点では、世界中のインターネット上のドキュメントに多く登場するプログラミング言語を集計したデータを公開しているTIOBE Programming Community の プログラミング言語人気ランキング でもかなり上位に位置しています。 そこで今回はPythonからPostgreSQLへ接続する方法をご紹介します。 PythonからPostgreSQLに接続する場合、"ドライバ"と呼ばれるモジュールを使用します。PostgreSQL用として現在公開されているメジャーなものでは、以下の3つが挙げられます。なお、備考内の"libpq"とはPostgreSQL自体が提供している、クライアントアプリケーション用のC言語のライブラリです。
7.8. WITH問い合わせ(共通テーブル式)WITHは、より大規模な問い合わせで使用される補助文を記述する方法を提供します。 これらの文は共通テーブル式またはCTEとよく呼ばれるものであり、1つの問い合わせのためだけに存在する一時テーブルを定義するものと考えられます。 WITH句内の補助文はそれぞれSELECT、INSERT、UPDATEまたはDELETEを取ることができます。 そしてWITH句自身は、これもSELECT、INSERT、UPDATEまたはDELETEを取ることができる主文に付与されます。 7.8.1. WITH内のSELECTWITH内のSELECTの基本的な価値は、複雑な問い合わせをより単純な部品に分解することです。 以下に例を示します。 WITH regional_sales AS ( SELECT region, SUM(amount) AS total_sales
環境 MAC OSX 10.10.5 Yosemite 使い方(例) テーブルの準備 CREATE TABLE items ( id SMALLINT , name VARCHAR(16) , item_id SMALLINT , item_name VARCHAR(16) , PRIMARY KEY(id, item_id) ); INSERT INTO items VALUES (1, '文房具', 1, 'シャーペン') , (1, '文房具', 2, '消しゴム') , (1, '文房具', 3, '定規') , (2, 'かばん', 1, 'リュックサック') , (2, 'かばん', 2, 'ショルダーバッグ'); CREATE TABLE genre ( id SMALLINT , name VARCHAR(16) ,PRIMARY KEY(id) ); # SELECT *
前に JavaScript や PHP の日付関連処理のまとめを書いたところ、結構アクセスしてくる人が多かったので今度は PostgreSQL に関する日付関連処理についてまとめてみました。 SQLの場合いわゆる標準が決まっていますので、ここで述べている例は、なるべく標準に準拠した形になっています。なので、昔から PostgreSQL で使われていたやり方とは一部違うかもしれないです。 日付の単位について 基本的なことですが、一応まとめておきます。 1秒は1000ミリ秒 1分は60秒 1時間は60分 よって 1時間=60分=3600秒=3600000ミリ秒 1日=24時間=1440分=86400秒=86400000ミリ秒 日付/時刻のパース 日付/時刻を表したある書式の文字列から PostgreSQL の TIMESTAMP 型に変換します。 SELECT CAST('2008-
Row_Numberとrankとdense_rank 順位や連番を求める 順位や連番を求めるのに使うのが、Row_Number関数とrank関数とdense_rank関数です。 create table RankingSample(ID,Score) as select 1,100 from dual union all select 1, 90 from dual union all select 1, 90 from dual union all select 1, 80 from dual union all select 1, 70 from dual union all select 2,100 from dual union all select 2,100 from dual union all select 2,100 from dual union all select
付録 A. PostgreSQL エラーコードPostgreSQLサーバによって発行されるメッセージはすべて、標準SQLにおける"SQLSTATE"コードの記述方法に従った、5文字のエラーコードが割り当てられています。 どのようなエラー条件が発生したかを把握しなければならないアプリケーションは、通常テキスト形式のエラーメッセージを確認するのではなく、このエラーコードを検査すべきです。 このエラーコードは、PostgreSQL リリースの違いによって変更することはあまりありません。また、エラーメッセージの各国言語化による変更にも影響されません。 PostgreSQLで発行されるエラーコードの幾つか(全部ではありません)は、標準SQLで定義されていることに注意して下さい。 標準SQLで定義されていない追加のエラーコードは、独自のものであったり他のデータベースから取り入れたものです。 標準に従い
9.9. 日付/時刻関数と演算子表9-28は、日付/時刻型の値の処理で使用可能な関数を示しています。詳細は、以下の副節で説明します。 表9-27は、(+、*等の)基本的な算術演算子の振舞いを説明しています。 書式設定関数については項9.8を参照してください。 項8.5を参照して、日付/時刻データ型についての背景となっている情報に精通していなければなりません。 後述のtimeもしくはtimestamp型の入力を受け取る関数および演算子は全て、実際には2つの種類があります。1つはtime with time zone型またはtimestamp with time zone型を取るもので、もう1つはtime without time zone型もしくはtimestamp without time zone型を取るものです。 省略のため、これらの種類の違いは個別に示していません。 また、+と*演算
最近Redshiftを業務で使う機会があったので、概要や使い方などをまとめてみようかと思います。 今回はRedshiftの立ち上げからはじめ、青空文庫さんが公開してくださっている、形態素解析データをRedshiftにいれて解析してみます。 解析といっても、一番多く幸せそうなワードを使っている文庫はどれかを調べるだけ。 一番多く幸せそうなワードを使っていた文庫を、「もっとも幸福な青空文庫」と判定します。 また、今回使用する、6.1GB、8770万行のデータをデフォルト設定でどのくらいでさばけるかなども試してみたいと思います。 今回やること 今回は以下の様なことをします。 ・Redshiftとは何かをまとめ ・青空文庫のデータセットをダウンロードして、S3にアップ ・PostgreSQLが扱えるDBクライアントを用意する ・Redshiftを立ち上げる ・Redshiftにクライアントから接続
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く