ソフトウェア開発者の日常スマートフォン用の表示で見るソフトウェア開発者の日常こだわりなく書きたいことを書いていきます。凝った平均の算出方法で小数点以下も扱うPostgreSQL5月の記事で最大と最小を除いた平均の求め方について書きました。ajya.hatenablog.jp記事では、以下のテーブルの場合のSQLを作成しました。正規表現を使って数字を取り出し、データを並べ替えPostgreSQLデータの並べ替えにおいて、以下のようなデータの場合、単純にlabelの値を使って並べ替えると、数字部分に桁数を揃えるのための先頭のゼロ埋めがないため、「ラベル11.」→「ラベル2.」→「ラベル5.」の順番になってしまいます。凝った平均の算出方法PostgreSQLPostgreSQLで単純に平均を求めるなら、avg関数を使えばできます。www.postgresql.jp今回、最大と最小の値を除いて平均を求めなければならなくなりました。date型のカラムとの比較で考えた点PostgreSQLPostgreSQLのdate型のカラムの値に対して、現在の日付が「同じまたは後」なのか判定が必要になりました。すればわかりますが、日付と時刻が一緒に取得できます。date型のカラムとの比較で考えた点2018-06-13PostgreSQL:正規表現を使ってデータを抽出PostgreSQL以下のようなデータがあった際に、SQLでcountryの重複を除外してデータを取得すると、「-」が最初になってしまいます。Stat...PostgreSQL:正規表現を使ってデータを抽出2018-06-12PostgreSQL:DEALLOCATEを使う場面と互換性PostgreSQLPostgreSQLで、DEALLOCATEという見慣れないコマンドが使われているのソースコードを見ました。SQL1年ほど前に書いたSQLの記事を改めて読んで、どのような動作になっているのかわかりにくい部分があると感じたので、補足する記事です。ajya.hatenablog.jp元のデータは以下とします。PostgreSQLテーブル内で列をコピーテーブル内で列から列へコピーしたいときがあります。今回初期設定した列が実は違っていたので、一括でコピーしたくなりました。方法は以下のとおりでした。SQLあるデータにおいて、当初は文字列の先頭と特定の文字の後に数字がついていました。途中から仕様が変わって、文字列にはまったく数字が付かなくなり、以下のようなデータになりました。SQL既にデータベースに登録されているデータを元にして、新しいデータを作成しなければならなくなりました。元のデータを見ると、以下の表の様に特定の区切り文字(/)で連結されています。PostgreSQL今年からルールが変わったために対応していました。cc昨年まではあるカラムに対して、A-01~99/B-01~99/C-01~99という値を割り振られていました。PostgreSQL代表者と同行者を同時に登録するシステムがあります。登録されたデータの出力時、縦並びにデータを出力していて、番号は同じ番号にしていました。番号を同じにしたのは、同行者とわかりやすくするためです。2...PostgreSQL:条件式と文字列連結を使って、ハイフン(-)を付けた結果を取得できた2014-12-09PostgreSQL:SQLで月日のゼロ埋めを消す方法PostgreSQL既存のシステムを改造していて、月日の表示が04月03日になっていることに気がつきました。ソースコードを確認すると、SQLで取得できた値をそのまま表示していました。test_tableと...PostgreSQL:SQLで月日のゼロ埋めを消す方法2014-09-102テーブルのレコードロックはできない?PostgreSQLデータベースにPostgreSQL使ったシステムを作成していますが、登録者のテーブルと登録内容詳細のテーブルの2テーブルをレコードロックしないと、同時に処理した場合、同じ登録者番号が発番されたり、登録数カウントが正しくなくなる可能性に気がつきました。SQLCASE式でソートカラムを用意してソートしました。PostgreSQL上に作成されたデータベースのテーブルに、column1とcolumn2があります。column1はNULLの場合もありますが、column2はNULL以外の値が必ず入っています。column1とcolumn2を同一列とみなし、NULL...PostgreSQL:2列を同一列としてソートする方法2014-07-04PostgreSQLで複数行の検索結果を文字で結合して、1行として取得する方法PostgreSQLPostgreSQLで検索した結果が複数行になることはわかっていましたが、プログラムで処理する都合上、結果を1行として取得したくなりました。以前方法を見た覚えがあったので、調べなおした結果、以下のようにしたらできました。864bit版のODBCドライバをインストールしたら、解決しました。2013がインストールしてありました。64bit版でODBC接続できないときの対処方法2014-06-26PostgreSQLでレコードロックをして更新する方法PostgreSQL昨日テーブルをロックして更新する方法を書きました。テーブル全体をロックすると、条件によっては同時に処理できるのが、テーブルのロックを獲得できるまで待機することになりま...PostgreSQLでレコードロックをして更新する方法2014-06-25PostgreSQLでテーブルロックをして更新する方法PostgreSQLSELECTしたレコードに対してUPDATEを行う処理が、別々に同時に行われる可能性があるので、テーブルをロックして更新することにしました。PostgreSQLの場合以下のコードでできました。SQLデータをExcelでもらってデータベースに登録した後になって、Excelのデータの小数点以下の計算が正しくなくて、1の位が5か0以外は修正が必要ということがわかりました。SQL毎年5月1日に会費を処理システムがあり、バッチ処理で夜間に処理してしまえばいいのですが、なぜか日中に処理を行うことになっています。そのために、5月1日に会費の処理が行われるまで、システムは会費が処理されていないために利用できない状態になってい...SQL:PostgreSQLでSQL上で日付を判定して、結果を変える方法2014-04-06PostgreSQLで、改善してほいしところPostgreSQL現象と原因先日、あるシステムにデータを入れようと登録プログラムを使いましたが入りません。原因を調べると、character(8)と定義されているとこのに、英数記号で構成された9文字の文字列を入れようとしているためでした。データベース現在開発中のシステムで、数値型でよかったカラムが、文字型にしないと不都合だということが発覚しました。主キーになっているので、手間がかかりそう。Access先日、テスト環境に本番データをコピーして、コピーしたデータを改変してテストをしなくてはならなくなりました。SQL2000件以上のデータの中から、長い文字列が格納された行を処理した結果を確認したくなりました。プログラムで調べてもいいのですが、SQLでできないか確認したら、PostgreSQLでは、char_length()という関数が用意されていました。SEL...SQL:PostgreSQLでデータベースに格納された文字列の長さを調べる方法2013-04-15PostgreSQLのTO_CHAR関数で起きた不思議な現象PostgreSQL自分には、なぜそうなるのかわからないです。お客さんから頼まれて、データ抽出のSQLを書きました。Accessよくわからないことが起きましたが、無事おわりました。PostgreSQLのテーブルに対して、Accessにリンクテーブルを作成して、データを登録していました。7上に環境構築しようとしたときのことです。以前、PHP5.2.7以降に付属のDLLは、PostgreSQLに接続できな...PHP:XAMPP最新版からPostgreSQL最新版へ接続しようとして相変わらずだと思ったこと2013-01-29PostgreSQLを複数バージョン導入した環境で、リストアが上手くいかない場合の対処方法PostgreSQL単純な方法で対処できました。8.3をインストールした後に、9.1をインストールしてあります。次のページプロフィールid:AJYAこだわりなく書きたいことを書いていきます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。