回答数
気になる
-
SQLで2年連続で値が上昇した年を表示する
添付の表よりSQLのcase文を使用して2年連続でsaleが上がったyearを求めようと しています。 前年より上がった場合は以下のSQLで表示できたのですが 2年連続に上がった年を表示させようとするとうまく表示できません。 誰かご教授いただけないでしょうか? select year,sale from sales s1 where sale > (select sale from sales s2 where s2.year = s1.year -1) order by year
質問日時: 2014/01/26 14:24 質問者: yoshi2519
ベストアンサー
2
0
-
PostgreSQL インストール先の取得
Windows7でレジストリよりPostgreSQLのインストール先をバッチで取得しようとしたのですが取得できませんでした。 同じ階層で「文字列値」に空白がない「Version」は取得できるのですが 「Base Directory」になると取得できません。 文字列値に空白がある場合「”~”(ダブルコーテーション)」でくくればいいとあったのですが、駄目でした。 どなたかご存知の方教えてください。 @echo off FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.0" /v "Version"') DO IF "%%A"=="Version" SET GET_Version=%%C FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\postgresql-9.0" /v "Base Directory"') DO IF "%%A"=="Base Directory" SET GET_DIR=%%C echo PostgreSQL Version cho %GET_Version% echo PostgreSQL Directory echo %GET_DIR% pause exit
質問日時: 2014/01/17 16:24 質問者: new_se0101
ベストアンサー
1
0
-
mac PostgreSQLのアンインストール方法
皆様 いつもお世話になります。 早速ですがご質問させて頂きます。 Postgresqlを使ったシステム開発の勉強するため、最新版をインストールしようと思っています。 (利用しているPCは中古で購入したものなので)あらかじめ入っていたPostgresqlを アンインストールしようと思ったのですが、方法が分からず困っています。 PCにPostgresqlがあらかじめ入っているかどうかは以下のコマンドで確認しました。 #psql --version psql (PostgreSQL) 9.1.9 contains support for command-line editing とりいそぎGoogleで検索してみたところ、 /Library/PostgreSQL/(Postgresqlのバージョン)/uninstall-postgresql.app にてアンインストールできるらしいのですが、/Libraryディレクトリ以下にPostgreSQLディレクトリがありませんでした。 作業が進まずほとほと困っています。 どなたかお詳しい方ご教授のほど何卒宜しくお願い致します! 環境: MacOSX 10.8.5 Postgresql9.1.9
質問日時: 2013/12/14 15:11 質問者: takachipo
ベストアンサー
2
0
-
データベース移設 文字化け
現在、とあるショッピングサイト(データベースはPostgreSQL、OSはLinux)を運営しておりまして、そのサイトの英語版を別のサーバで作ることになりました。 商品数が膨大にありますため、一つ一つの商品をショッピングサイトの管理画面からコピーペーストし翻訳することは、物理的にできません。 そこで、PostgreSQLのデータベースの中身を自分のPC(Windows7)にいったんコピーし、テキストエディターで開き、翻訳した後、CSVによって英語版サーバへアップロードする方法を思いつきました。 pg_dumpによってデータベースをコピーし、FTPによって自分のPCに持ってくることは、できました。 いざ拡張子に.txtと付けてメモ帳で開いてみたところ、添付画像のような文字化けとなってしまいました。 拡張子をhtmlに変更しブラウザのエンコードで、シフトJIS、EUC、UTF-8といろいろ試しましたが、ダメでした。DreamWeaverのような文字コードの変換ができるエディターで全ての文字コードを試しましたが、やはりできません。 添付画像のような文字化けを日本語に直す方法をご存知の方、いらっしゃいませんでしょうか?
質問日時: 2013/12/04 11:00 質問者: TKM2005
ベストアンサー
2
0
-
PostgreSqlのテーブルをVBから更新
PostgreSqlのテーブルをVBから更新 【テーブル】 tbl1 ( item1 integer not null, -- 数値:ユニークキー , item2 character varying, -- 文字 , item3 timestamp without time zone -- タイムスタンプ , CONSTRAINT tbl1pk PRIMARY KEY (item1) ) 【仕様】 1.テーブル内の特定の1レコードを取得 2.取得したレコードをVBの画面に表示 3.入力:VBの画面で item2 の表示内容を変更 4.ボタン入力 4-1.レコードが存在しない場合 メセージボックスに「誰かが消した」と表示 4-2.タイムスタンプに変化がある場合 メセージボックスに「誰かが変更した」と表示 4-3.タイムスタンプに変化がない場合 Updateする。 【前提】 普通にアップデートするだけなら、下記でできました。 Private DateTime1 As DateTime ' 画面表示の時に取得したitem3の値が入っているとする : : Dim NpgsqlConnection1 As NpgsqlConnection = New NpgsqlConnection Dim NpgsqlCommand1 As NpgsqlCommand = New NpgsqlCommand NpgsqlCommand1 = NpgsqlConnection1.CreateCommand NpgsqlCommand1.CommandText = "update tbl1 " _ & "set item2 = '" & Me.TextBox1.Text & "'" _ & ", item3 = current_timestamp " _ & "where item1 =" & キー値 NpgsqlConnection1.ConnectionString = 接続情報 NpgsqlConnection1.Open() NpgsqlCommand1.ExecuteNonQuery() NpgsqlConnection1.Close() 【考察】 変更された場合は、更新対象外にするのは、条件に入れればなんとかなります。 NpgsqlCommand1.CommandText = "update tbl1 " _ & "set item2 = '" & Me.TextBox1.Text & "'" _ & ", item3 = current_timestamp " _ & "where item1 =" & キー値 _ & "and date_trunc('second', item3) =" & "to_timestamp('" & Format(DateTime1, "yyyy-MM-dd HH:mm:ss") & "', 'YYYY-MM-DD HH24:MI:SS')" しかし、これではこのSQLで更新されたのか、他で更新があったためにスキップしたのかが分かりません。 直前のSQLで更新があったかどうか、もしくは何件更新対象になったかを得る事はできませんか? もしくは、 一旦呼び出してロックし、その間にタイムスタンプを取り出し、 Vb内に持っていた前回のタイムスタンプと比較し、同じであれば更新する。 同じでなければステータスを返す。 というふうにしたいです。 【質問】 アップデート文で更新対象になった件数を取得する事はできませんか? もしくは、フェッチの方法を教えて下さい。 上記の仕様のようにタイムスタンプを判断し、そのレコードを掴んだままアップデートしたいなら、フェッチするしかないのかと思っています。 でも、そのやり方が分かりません。 ・コネクト ・カーソル定義 ・カーソルオープン ・ネクストレコード ・レコードを取得し、VB側のタイムスタンプと比較←どうやって? ・カーソル行に対しアップデート ・レコードの終わり ・0件なら「誰かが消した」と表示 ・カーソルクローズ ・コネクト解除 やりたい事は上記でSqlもVbも分かるのですが、インターフェイス込みでコマンドレベルの方法が分かりません。 フェッチでの方法が分からないので教えて下さい。 フェッチで以外の方法で同等の事が出来るもっと良いやり方があれば教えて下さい。 以上、よろしくお願いします。
質問日時: 2013/12/03 09:40 質問者: webuser
ベストアンサー
3
0
-
windowsクライアントへのphpPgAdmin
リモートホストのpostgresqlにwindows7ホストからつなぐために、windowsホストにphpPgAdminをインストールしようとしています。 windowsホストにはpostgresql, phpなどをインストールしていません。 windows側でサーバーソフトを動かす予定はありません。 多くの解説サイトではpostgresqlサーバーにphpPgAdminを導入するのを前提としているようでよくわからないのですが、この場合、phpPgAdminのみを単独でインストールすればよいでしょうか、あるいは、先立ってphpなどインストールしておく必要があるのでしょうか? 2013年11月1日
質問日時: 2013/11/01 09:11 質問者: RASUM2
ベストアンサー
1
0
-
数字のカンマ区切りの文字列を分解したい
SQLのみで以下の様なことをしたいのですが、やり方が分かりません。 何かしら手法をお知りの方はご教授願いたく存じます。 ▼Postgresバージョン 8.1 ▼テーブル情報 id, numbers 1, '0,20,10,30,50' 2, '10,20,30,50,60' ↓ numbers の値をカンマ( , )で分解し、加算したい。 例) '0,20,10,30,50' → 0 + 20 + 10 + 30 + 50 → INTEGERの 110 を取得 ※regexp_split_to_table の関数は、postgresのバージョンが古いために使用できませんでした。 postgresのバージョンを上げる事が出来ないため、8.1でも可能な対応方法を模索しています。
質問日時: 2013/10/18 18:10 質問者: killey
ベストアンサー
1
0
-
Npgsql.dllをバージョン指定でダウンロード
PostgreSQLのApplication Stack Builderを使用しNpgsql.dllをインストールしたところ バージョンが2.0.12になりました。2.0.11をインストールしたいのですが、 バージョン指定でインストールすることはできないのでしょうか? ご回答のほど、よろしくお願いいたします。 【環境】 Windows7 Professional SP1 VB2010 PostgreSQL9.2.1
質問日時: 2013/10/04 11:09 質問者: rapport5683
ベストアンサー
1
0
-
SQLで2つの表を検索して集計する場合
PostgreSQLとPHPでサイトを作っています。 下の2つの表がある場合に、「表1」のid名に応じて、 表2のid_noの該当件数を取得したいと思っているのですが、 うまくいかないため質問させいてただきました。 【表1】 idtitle ----------------------- 1ほげ1 2ほげ2 3ほげ3 4ほげ4 【表2】 id_nocoment ----------------------- 1コメント 2コメント 2コメント 2コメント 3コメント 3コメント 3コメント 【ほしい結果】 idtitlecount ----------------------- 1ほげ11 2ほげ23 3ほげ33 4ほげ40 SELECT title,id, (SELECT COUNT(*) FROM comment WHERE id_no ='【ID番号】') FROM informations AS count こちらの様なSQL文で取得出来るのではと考えたのですが、 【ID番号】の部分に、「表1」のidを動的に入れる事が出来ずに困っています。 解法がありましたら教えて下さい。
質問日時: 2013/09/26 13:19 質問者: xasisi2009
ベストアンサー
2
0
-
繰り返し処理の関数を作成したい。
環境 PostgreSQL 9.2 下記のようなテーブル[TABLE_A]の行(text) を順繰り上から引用してセレクト文の変数として使用するような関数を作成したいです。 やりたいこととしては一つ一つセレクト文を書いて出力を確認するのが無理な量な場合に作業を軽減したいです。 [TABLE_A] hogehoge_a hogehoge_b hogehoge_c ... hogehoge_xx SELECT "hogehoge_a" FROM TABLE_A; ハマってしまいなかなかうまく行きません。お願いします。
質問日時: 2013/08/22 18:14 質問者: deldelfonics
解決済
1
0
-
検索で濁点や半濁点をヒットさせない
PostgreSQLで検索をすると濁点や半濁点もヒットしてしまいます。 「%カルヒ」で、「カルビスープ」も「カルピス」もヒットしてしまいます。 データべースは下記の通り作成しました。 CREATE DATABASE testdb WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'Japanese_Japan.932' LC_CTYPE = 'Japanese_Japan.932' PostgreSQLにて検索で濁点や半濁点をヒットさせない方法はありますか?
質問日時: 2013/08/07 15:56 質問者: rapport5683
ベストアンサー
3
0
-
正常終了するが追加されない
batchInsert処理を行うと正常終了しますが、DBには追加されてiいません。 ConnectionMgr.commitConnection(conn);文が終了後実行されています。 SQL文 public void batchInsertSgnbtuInfo(ArrayList list, String rysnoo, String pgmId, Connection conn) throws DBException, SQLException { if (list == null || list.size() < 1) { return; } PreparedStatement pstmt = null; int[] rst = null; //sql文 StringBuffer sql = new StringBuffer(); sql.append(" INSERT INTO sgnjsk_inf (" + " kjikminoo, " + " hnkrrkymd, " + " untbng, " + " sgnetyjyn, " + " sgncod ) " + " VALUES (?, to_timestamp(?, 'yyyy/MM/dd hh24:mi:ss'), ?, ?, ?); try { pstmt = conn.prepareStatement(sql.toString()); //SQL文のパーラメタを設置 for (Iterator it = list.iterator(); it.hasNext();) { SgnbtujskinfInfo info = (SgnbtujskinfInfo) it.next(); int i = 1; // VALUES pstmt.setString(i++, info.getKjikminoo()); pstmt.setString(i++, info.getHnkrrkymd()); // ユニット番号 pstmt.setInt(i++, info.getUntbng()); //資源登録順 pstmt.setInt(i++, info.getSgnetyjyn()); pstmt.setString(i++, info.getSgncod()); pstmt.addBatch(); } pstmt.executeBatch(); } finally { if (pstmt != null) { pstmt.close(); } } } よろしくご教授ください。
質問日時: 2013/08/07 03:03 質問者: Horirin39
ベストアンサー
3
0
-
Select結果をSelect
お世話になります。 以下のSQL文のイメージでselectの結果をさらにselectしたいのですが”subquery has too many columns”というエラーを吐かれます。 Postgreに合った書き方がお分かりでしたら教えてください。 よろしくお願いします。 select * from [DB名] where [パスワード] = 'test' IN ( select * from [DB名] where [ユーザID]='1111' order by [更新日] desc limit 3) [やりたいこと] テストDBからユーザIDが1111の行を更新日をキーに降順で並べ、先頭から3行分を取り出す。 その3行からパスワードが"test"のものをselectしたい。
質問日時: 2013/08/05 19:26 質問者: prius_777
ベストアンサー
2
0
-
検索スピードの速い方法を教えてください
PostgreSQLを使ったJavaシステムで、検索スピードが最も速い方法を教えていただきたいと思います。 ・検索するテーブル(tblS) scode Varchar 6 主キー sname Varchar 30 stni Varchar 2 skmk Varchar 2 stnk Int4 ・検索する項目 入力されたnameがテーブルのsnameに存在した場合、他の4項目のデータを読み込む。 これを連続して5回(nameが5件ある)行う。 現在考えているのが、tblSのデータをArrayListに読込み、ArrayListの検索を行う方法です。 現在、tblSの件数は1500件ですが、日々増加しています。 どうかよろしくご教授ください。
質問日時: 2013/07/24 15:07 質問者: Horirin39
ベストアンサー
5
0
-
tar.gzファイルのリストアについて
Postgres初心者です。 教えてください。 pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、 tarコマンドで****.tar.gzファイルに圧縮しました。 このtar.gzのファイルを直接リストアするコマンドがあれば 教えていただけないでしょうか? -bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。 -bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名) と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした よろしくお願い致します。
質問日時: 2013/07/18 13:15 質問者: ymoshimoshi
ベストアンサー
1
0
-
PostgreSQLのUPDATE文につきまして
お世話になります。 phpPgAdminで更新作業をしていまして 一件一項目の更新で update "store_table" set "tenpo_add" = '東京都1-1-1' where "kaiin_no" = '123456'; とした場合はうまく更新でできたのですが、以下のように複数項目の更新が文法エラーになります。 update "store_table" set "tenpo_post1","tenpo_post2","tenpo_add" = '123','4321','東京都1-1-1' where "kaiin_no" = '123456'; このようにした場合、 "," ←この部分が文法上おかしいとのエラーが出ました。 どのように記載すれば良いかご指導いただければ幸いでございます。。
質問日時: 2013/07/02 11:48 質問者: ya-ya-
ベストアンサー
1
0
-
CentOS6にpgadmin3をインストール
CentOS 6.4をインストールし、標準装備のpostgresql 8.4をインストールしました。 この環境にpgadmin3をインストールしたいのですが、最も簡単な方法を教えて下さい。 ネットで調べると、「ソフトウェアの追加/削除」から「pgadmin3」を検索し、ヒットしたモジュールにチェックを付ければインストールが完了するような事を書いていましたが、「ソフトウェアの追加/削除」で検索してもモジュールはヒットしません。 http://www.linuxmania.jp/postgresql_01.html 例ではCentOS 5でしたので、念のためにCentOS 5で試しましたが、やはり出来ません。 yumでインストールできるような事を書いているのもありましたが、 yum list 上にpgadmin3は見当たりません。 うーん、という感じです。
質問日時: 2013/06/18 11:24 質問者: webuser
ベストアンサー
1
0
-
PostgreSQLのレプリケーション
PostgreSQL(9.1.4)のストリーミング・レプリケーションについて 現在、半年ほどRails+PostgreSQL(9.1.4)で構成されたシステムを運用しております。 DBサーバ(PostgreSQL 9.1.4)を2台使用し、PostgreSQLのストリーミング・レプリケーション機能を用いて、サーバ間でのデータ同期処理を実現させておりました。 しかし、本日より、このストリーミング・レプリケーション機能が正常に動作せず、データの同期処理が行われない状態となってしまいました。 原因の調査方法が、分からず、どのようなログを見て、どのように対処すべきか、ご存知の方がいらっしゃいましたら、教えて頂けないでしょうか? 何卒よろしくお願い申し上げます。
質問日時: 2013/06/17 15:56 質問者: kyoshda84
ベストアンサー
1
0
-
文字化けしてしまって困っています
postgresのデータベースから日本語の入った列の取得が上手くできずに困っています。 どうすればよいのでしょうか。。。 【DB】 postgres:9.1.1 perl: v5.10.1 databaseの文字コード:UTF-8 【クライアント】 postgres:8.4.0 perl:v5.8.8 文字コード:ECU-JP このような環境で、クライアントで 県名テーブルから県名を取得する以下のようなperlを実行した結果、 OUT.csvの県名列が文字化けしてしまったため (1)のように修正したのですがエラーとなってしまいます。 convertの記述の仕方が悪いのでしょうか? DBD::Pg::st execute failed: ERROR: function convert(character varying, unknown, unknown) does not exist at character 19 (Test.pl) #!/usr/local/bin/perl use DBI; $query = <<EOF; SELECT KEN_ID, KEN_NAME ←修正前 convert(KEN_NAME,'UTF-8','EUC-JP')←(1) FROM KEN_MASTER EOF $dbi = DBI->connect("dbi:Pg:dbname=datbase;host=DATA_SV","hogeUser","hogePass"); $dsi = $dbi->prepare($query); $dsi->execute(); open(OUT, "> /OUT.csv"); while ($shr = $dsi->fetchrow_arrayref) { print OUT join(",", @$shr), "\n"; } close(OUT); $dsi->finish(); $dbi->disconnect(); exit();
質問日時: 2013/06/15 10:43 質問者: usagi3kuma3
解決済
2
0
-
特定カラムの値を変更したいのですが
お世話になります。DB初心者です。 現在 、PostgreSQLのphpPgAdminを使っていまして 以下のようなDBがあり kaiin_no t_name t_chiket -------+-------+---------- 1001 太郎 なし 1002 次郎 なし 1003 三郎 なし 1004 四朗 あり 1005 五朗 あり 以下のようなSQLで目的のデータを表示できるのは解ったのですが SELECT "kaiin_no","t_name","t_chiket" FROM "public"."store_table" WHERE "kaiin_no" IN ('1001','1002','1003'); kaiin_no '1001','1002','1003' の t_chiket を 「なし」 から 「あり」 に変更すする方法をご教授いただけますでしょうか? お手数をおかけしますがよろしくお願いいたします。
質問日時: 2013/05/14 22:53 質問者: ya-ya-
ベストアンサー
1
0
-
テーブル単位のリストア
pg_dumpall > [出力ファイル名] で作成したバックアップからテーブル単位でリストアする方法はないのでしょうか? pg_dumpallのマニュアルを読むと、リストアはpsqlで行うことになっていますが、psqlのマニュアルには テーブル単位で取り出すオプションなどはないようです。 また:pg_dumpallで作成したファイルを: pg_restore -l [入力ファイル名] の入力ファイルにすると、"pg_restore: [archiver] input file does not appear to be a valid archive" エラーが発生します。 webでも調べてみたのですが、該当するページが見あたりません。 お手数ですがご教授ください。
質問日時: 2013/05/07 11:48 質問者: trka
ベストアンサー
2
0
-
JDBCが見つからないとメッセージが出る
PostgreSQLをバージョン8.2から9.2にUPし、Tomcatをバージョン5から7にUPしました。 そのほか、OSはWindows7でローカルシステムを構築中です。 実行すると、HTTPステータス500javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory] とエラーが出ます。 以下の環境設定の間違いと思われますが、どこを直せばよいかわかりません。 よろしくご教授ください。 PostgreSQLは、C:\Program Files\postgresql9.2に配置しました。 Tomcatは、C:\Tomcat7に配置しました。 システムはC:\Tomcat7\webapps\test1に配置しました。 JDBCドライバは、postgresql-9.1-901.jdbc3.jar と postgresql-9.1-901.jdbc4.jar を C:\Tomcat7\libnにコピー&ペーストしました。 接続の定義は、C:\Tomcat7\conf\catalina\localhost に test1.xmlファイルを作りました。 以下がその記述です。 <?xml version='1.0' encoding='utf-8'?> <Context path="/test1" reloadable="true" docBase="C:\Tomcat7\webapps\test1" workDir="C:\Tomcat7\work" > <Resource name="jdbc/RDBMS" auth="container" type="javax.sql.DataSource" debug="1" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="org.postgresql.Driver" username="postgres" password="postgres" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:postgresql://localhost:5432/LocalDB" removeAbandoned="true" removeAbandonedTimeout="300" /> </Context>
質問日時: 2013/05/06 18:31 質問者: Horirin39
ベストアンサー
3
0
-
postgresql のupper関数について
いつもお世話になっております。 標題についてご教授下さい。 DBからある項目をupper関数を使って変換しているのですが、 変換されません。 UPPERは文字列などを大文字に変換する認識なのですが、 わかりません。 [table A] key1 Test key2 test SELECT upper(key1), upper(key2) from A 結果 key1 key2 Test TEST 全角の英字が変換されません。 そもそも全角はtranslateしないとだめでしょうか。 お手数ですが、宜しくお願いします。
質問日時: 2013/04/24 18:45 質問者: prr4e
ベストアンサー
3
0
-
PostgreSQL バッチでバックアップ
PostgreSQL 8.4に関する質問です。 サーバ:Linux、PostgreSQL 8.4 クライアント:Windows 7 Windowsマシンから、バッチファイルでサーバ上のPostgresのバックアップを取りたいのですが、 以下のコマンドをバッチファイルに記述して実行すると、 「パスワード:」というプロンプトが出て処理が止まってしまいます。 pg_dump.exe -h [DBサーバのIP] -U [ユーザ名] -F custom -b -v -f "C:\test.backup" "test" パスワードを入れればバックアップはできるのですが、 パスワードの入力まで完全自動化するにはどうすればいいでしょうか。 Linux上のPostgresはSSL接続のみ許可するようになっています。 Windowsのタスクで毎日バックアップする運用を想定しています。
質問日時: 2013/04/08 18:47 質問者: luca20110205
ベストアンサー
2
0
-
Windows に Postgres 旧バージョン
Windowsに、PostgreSQL 旧バージョン等をインストールしたいのですが、 以下のバージョンをインストールする事は可能でしょうか。 PostgreSQL 7.3.6 Apache 2.2.23 PHP 5.2.17 Windows は、できれば7(64bit)、駄目ならXP(32bit)に入れたいです。 Postgresを自分で探してみたのですが、Linuxバージョンしか見つける事ができませんでした。
質問日時: 2013/04/08 16:03 質問者: luca20110205
ベストアンサー
1
0
-
COPYコマンドによるTEXT取り込みについて
PostgreSQLバージョン 9 OS:RedHat 現在Oracleからの移行でPostgreSQLにてTEXT取り込み処理を作成しています。 OracleではSQLLoaderを使用して取り込んでいましたが、 PostgreSQLではCOPYコマンドを使用すれば取り込みできるところまで調べました。 しかし、行末に区切文字があるためうまく取り込みできません。 【コマンド】 \copy hoge from 'hoge.txt' delimiters '|'; 【行末に区切文字がある場合NG】 AAA|BBB|CCC| ERROR: extra data after last expected column CONTEXT: COPY hoge, line 1: "AAA|BBB|CCC|" 【行末に区切文字がない場合OK】 AAA|BBB|CCC SQLLoaderでは行末の区切文字があっても取り込めましたが COPYコマンドでは取り込めないようです。 回避策はないのでしょうか? (取引先からのTEXTなので相談はして見ますがレイアウトの変更は難しいかもしれません。) 回避策がない場合、行末の区切文字を削除する方法はありますでしょうか? 行末だけの区切文字を削除する方法が分かりません。 (テキストは固定長でないため、桁数を指定した削除ができません) 行末区切文字削除の方法だけでも良いのでお願いします。
質問日時: 2013/04/07 13:14 質問者: hiroro09
ベストアンサー
2
0
-
pl/pgsqlで再帰呼び出しは可能でしょうか。
pl/pgsqlで再帰呼び出しは可能でしょうか。 PostgreSQLのバージョンは9.2.3です。 作成しているファンクションは正方形の中心座標を求めてInsertするものです。 指定した回数だけ、再帰的に正方形を4分割にどんどん細分化していき、 それぞれの正方形の中心座標をInsertします。 4分割にした正方形をそれぞれ以下のように番号を振って説明します。 左上・・・(1) 右上・・・(2) 左下・・・(3) 右下・・・(4) 元の正方形を求めた後、(1)→(2)→(3)→(4)の順に再帰的にファンクションを呼び出します。 パラメータを「3回」以上にした場合は、(1)についてもまた4分割していきます。 ここで、パラメータを「1回」とした場合は、元の正方形の中心座標は当然Insertできます。 パラメータを「2回」とした場合、(1)の正方形の中心座標も求まりますが、 (1)の正方形については再帰の最終処理のため、Insert後にRETURNすることで エラーとなっているのか、1つ目の正方形のレコードも(2)の正方形のレコードも Insertされていません。 さらにはその「RETURN句」が元のファンクションすら「終了」させているようで、 (2)、(3)、(4)の正方形の処理が行われません。 このように再帰呼び出しをしたいと思っても、再帰中の処理を終わらせ、 呼び出し元に戻らせるはずのRETURN句が、一番最初のファンクションの「終了」と 理解されてしまい、pl/pgsqlでは再帰呼び出しは実現できないのでしょうか。 ファンクションのイメージは以下の通りです。 CREATE OR REPLACE FUNCTION Insert_squre( IN kaisuu INT, --再帰的に呼び出す回数 IN count INT, --再帰回数をカウント IN X1 INT, --正方形の左上の頂点のX座標 IN Y1 INT, --正方形の左上の頂点のY座標 IN X2 INT, --正方形の右下の頂点のX座標 IN Y2 INT --正方形の右下の頂点のY座標 ) RETURNS void AS $$ DECLARE /* 変数定義 */ ・・・・・ BEGIN /* 中心座標を求める */ ・・・・・ /* 中心座標をInsert */ ・・・・・ /* kaisuu=countならばRETURN */ ・・・・・ /* (1)の正方形について再帰処理 */ select Insert_squre( IN kaisuu INT, --再帰的に呼び出す回数 IN count+1 INT, --再帰回数をカウント IN X1 INT, --正方形の左上の頂点のX座標 IN Y1 INT, --正方形の左上の頂点のY座標 IN X3 INT, --正方形の右下の頂点のX座標 IN Y3 INT --正方形の右下の頂点のY座標 ); /* (2)の正方形について再帰処理 */ ・・・・・ /* (3)の正方形について再帰処理 */ ・・・・・ /* (4)の正方形について再帰処理 */ ・・・・・ RETURN; END; $$ LANGUAGE PLpgSQL;
質問日時: 2013/03/31 01:23 質問者: luida
解決済
1
0
-
postgreSQL9.2 イベントトリガ
ポスグレでイベントトリガを使いinsert時に任意の関数を呼び出し処理を行いたいのですが 最後にinsertされた(正確にはそのイベントが発生したときにinsertされた)レコードの データを関数内で使うやり方がわかりません。 そういった関数みたいのがあるのでしょうか。 ご存知の方、ご教示いただけると助かります。
質問日時: 2013/03/28 01:14 質問者: chibichan_dayo
ベストアンサー
1
0
-
PostgreSQLのphpPgAdminを使って
お世話になります。 PostgreSQL8.4.8のphpPgAdmin3.5.3を使ってデータを削除する際に 先ずデータをSELECT で表示させて確認後、 SQL編集 で SELECTを DELETE に書き換えて実行しましたが以下エラーが出ます ≪一覧確認用≫一覧表示はできました。 SELECT "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪削除用≫SELECT → DELETEに変更 → 実行 → 以下エラー DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪エラー内容≫ ERROR: syntax error at or near "," LINE 1: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no",... ^ 文: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234','2222')) AS sub 文法エラーのようなのですが 一覧が出来ているのに なぜ削除が出来ないのか 初心者で恐縮ですが ご教示頂ければ幸いです。
質問日時: 2013/03/25 15:14 質問者: ya-ya-
ベストアンサー
1
0
-
pl/pgsqlで変数の扱い
pl/pgsqlで変数が文字列として扱われてしまうのですがどうすればいいのでしょうか。 具体的には以下のような感じです。 CREATE OR REPLACE FUNCTION test_func() RETURNS VOID AS $$ DECLARE test_val TEXT ; ofs_num INTEGER := 0; lmt_num INTEGER := 0; t_name TEXT := 'schema1.table1'; BEGIN SELECT INTO ret_val * FROM t_name OFFSET ofs_num LIMIT lmt_num; END; $$ LANGUAGE plpgsql; 上記のofs_numやlmt_numは変数として認識してくれるのですが FROMに続く「t_name」が変数ではなくそのままの文字列として認識されてしまいます。 t_nameを変数として認識させる方法はありませんでしょうか。 教えていただけると助かりますm(_)m
質問日時: 2013/03/18 23:07 質問者: chibichan_dayo
ベストアンサー
1
0
-
SQLで同じフィールドを2つ取りだしたい
以下のテーブルからCSVを出力する際、 ID | 名称 | コード1 | コード2 1 | A | 111 | 444 2 | B | 222 | 555 3 | C | 333 | 666 「ID/名称/コード1コード2」のように取りだす場合のSQL文は SELECT ID, 名称, コード1 || コード1 FROM テーブル名 となると思いますがこれを、「ID/名称コード1/名称コード2」のように同じフィールドを同じ行に2回登場させたい場合はどうすれば宜しいでしょうか。 SELECT ID, 名称 || コード1, 名称 || コード2 FROM テーブル名 とした場合にはエラーになってしまいます。 宜しくお願い致します。
質問日時: 2012/11/30 14:50 質問者: kazuhiy
解決済
3
0
-
複数レコードのテーブルであるレコードだけ増やしたい
お世話になります。 複数レコードがあるテーブルにて、あるレコードだけカウントアップする為のSQL文はどのように記述すれば良いでしょうか? 要件: テーブル名'名簿'の No, 名前, 更新者, 備考に 01, 芥川龍之介, ほげ太, NULLを入力し 備考は書き込みさせるためとりあえずNULLを代入しておき 名前と更新者は同じで、Noの部分だけを01~10までカウントアップさせたい 何卒、ご教授のほど、宜しくお願いします。
質問日時: 2012/11/29 04:39 質問者: fjsk
ベストアンサー
5
0
-
ポスグレ レコードの比較
ポスグレDBで以下のような二つのテーブルがあって レコード数、カラム等の構造も同じだったとして カラム1の値が二つのテーブルで同じであり カラム2~4のうちどれか一つでも違うレコードを抽出するSQLがわかりません。 下記の例で言うと抽出結果がスキーマA.テーブルAの「←」のレコードを抽出したいです。 スキーマA.テーブルA カラム1|カラム2|カラム3|カラム4| --------------------------- A |aaaaaaa|bbbbbb|ccccccc --------------------------- B |aaaaaaa|bbbbbb|ccccccc ← --------------------------- C |aaaaaaa|bbbbbb|ccccccc ← --------------------------- D |aaaaaaa|bbbbbb|ccccccc ← --------------------------- E |aaaaaaa|bbbbbb|ccccccc スキーマB.テーブルB カラム1|カラム2|カラム3|カラム4| --------------------------- A |aaaaaaa|bbbbbb|ccccccc --------------------------- B |1111111|bbbbbb|ccccccc --------------------------- C |aaaaaaa|777777|ccccccc --------------------------- D |2222222|bbbbbb|8888888 --------------------------- E |aaaaaaa|bbbbbb|ccccccc よろしくお願いします。
質問日時: 2012/11/02 01:02 質問者: chibichan_dayo
ベストアンサー
2
0
-
SQL 表の結合
SQLで2つの表から条件に合ったデータを取り出し、同じ列に表示させたいのですが、 どうやっても外部結合のようにすることしかできませんでした。 取り出したデータを縦に結合?させることはできるのでしょうか? 例) dataは月の上旬中旬下旬でそれぞれabcとします。 入力値はmonthとdayで、これらからuriageを選択します。 dataの取りうる値はa,b,c,ab,bc,abcとします。 table:A 売上表 table:B 上旬中旬下旬判断 --------------------------- ----------- key | data | month | uriage day | data --------------------------- ----------- 1 | a | 1 | 500 1 | a 2 | ab | 1 | 800 … | … 3 | bc | 1 | 400 10 | a 4 | c | 1 | 100 11 | b 5 | abc | 1 | 900 … | … … | … | … | … 31 | c --------------------------- ----------- month = 1 , day =5のとき table:Bより SELECT data FROM table:B WHERE day = 5 としてdata "a" を得ます。 この"a"と同じdataを持つuriageを表示させたいので SELECT uriage FROM table:A WHERE month = 1 AND data = (SELECT data FROM table:B WHERE day = 5) として table:query1 -------- uriage -------- 500 -------- を得ました。 ここまでは良いのですが、これに付け加えて、 table:Bから取り出したdata "a"をtable:Aのdataが含むとき(data = a,ab,abcのとき) その全てのuriageを表示させたく、 ワイルドカードを使おうと SELECT uriage FROM table:A WHERE month = 1 AND data = %(SELECT data FROM table:B WHERE day = 5)% 等としてみたのですが、上手くいきませんでした。 そこで、別のクエリーを作って SELECT uriage FROM table:A WHERE month = 1 AND data = 'ab' AND data = 'abc' として table:query2 --------- uriage --------- 800 --------- 900 ---------- を得ました。 そして、最後に、 得られた2つの表をまとめて --------- uriage --------- 500 --------- 800 --------- 900 --------- としたいのですが、 SELECT uriage, uriage FROM query1, query2 とすると ------------------ uriage | uriage ------------------ 500 | 800 500 | 900 ------------------ となりますし、UNIONは使い方がよくわからないためシンタックスエラーにしかならず...。 そもそも、縦に結合?はできるのでしょうか??? あれこれ試してみたのですが、詰まってしまったので、 どなたか知恵をお貸しください。
質問日時: 2012/10/25 15:41 質問者: bsjack
ベストアンサー
1
0
-
SQL,値の大きい順に値を取得
質問させて頂きます。 DB:PostgresSQL 言語:PHP 現在仕事情報の入ったテーブルから、金額の高い順にデータを10件取り出したいと考えています。 金額の入ったカラムが1つであれば、order by句で取り出すのですが、今回、時給[hour]、月給[month]、年収[year]と3つのカラムが存在しています。 ※下記のid4のように2つ以上の金額情報カラムを持っているデータも存在します。 ※データの中にはnullでなく0が入っているデータも存在します。 [id][hour][month][year] 1 ,1000 ,null ,null 2 ,1200 ,0 ,0 3 ,null ,300000 ,null 4 ,1500 ,200000 ,null 5 ,null ,null ,3200000 ... 100,null ,250000 ,null 質問の内容なのですが、下記のルールに従いデータを取得する際、どのような方法を行えば一番効率的でしょうか。 「ルール」 1. 金額比較の際、 月給はそのまま、 年収は12で割った金額、 時給に関しては、時給×8(1日の平均的労働時間)×20(1月の平均的な労働日数)の金額とします。 2. 2つ以上のカラムに金額を持っていた際は(id4のようなデータ)、金額の大きさに関わらず、年収>月給>時給の順で取得する。 id4のデータならば、時給の方が月給より高いですが、月給のデータを使用します。年収があれば年収優先。 id2の場合、0はnullと同じ扱いと考え、時給のデータを使用します。 このルールをふまえたうえでデータを取得する際、SQLで全データを取得して、PHPで高い順を判定するべきか、SQLで取得する時点である程度絞って取得した方が良いのか・・・。 SQLに関しての知識が乏しいため、効率的な方法をご存知の方はアドバイス頂けると大変助かります。 よろしくお願いします。
質問日時: 2012/10/19 12:25 質問者: non05410
解決済
2
0
-
SQL文で質問があります。
商品マスタがあり、データは下記の感じで登録されています。 コード | 商品名 | 商品カナ | 分類コード ・・・ --------------------------------------------------------- 0001 | マウス | マウス | 01 ・・・ 0002 | キーボード| キーボード| 01 ・・・ 0003 | モニター | モニター | 01 ・・・ ・ ・ ・ SQL文で質問があります。 下記のSQLでは取得できるんですが・・・ SELECT * FROM M_SHOHIN WHERE code = ANY('{0001,0002,0003}'); 下記のSQLを実行したらエラーが出力されました。 SELECT * FROM M_SHOHIN WHERE code = ANY( SELECT ARRAY_AGG(code) AS code FROM M_SHOHIN WHERE class_code = '01' ); ERROR: operator does not exist: character varying = character varying[] HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. なので下記のようにCASTをするようにして実行したらエラーは出力されなくなりましたがデータの取得ができませんでした。 SELECT * FROM M_SHOHIN WHERE code = ANY( SELECT CAST(ARRAY_AGG(code) AS VARCHAR) AS code FROM M_SHOHIN WHERE class_code = '01' ); どのようにすれば取得できますでしょうか。 説明が下手で申し訳ありませんがアドバイスいただけませんでしょうか。 データベースはPostgreSQL 8.4.9です。 宜しくお願いします。
質問日時: 2012/10/12 19:24 質問者: edo_1972
ベストアンサー
2
0
-
DBのバックアップとログの退避方法について
業務システムでPostgreSQL8.3を利用しており日次でバックアップを行っています。しかし、もしシステム稼動中にサーバー障害が発生した場合、データの復旧可否が利用者にとって一番気になるところだと思います。(日次バックアップは実施しているので前日データまでは復旧できると思います。) そこで質問なのですが、最新データまで復旧するとなるとログデータが必要になると思いますが、サーバが何らかの障害でログデータすらサルベージできない状況が起きることを想定して、ログデータも別のサーバに常に退避するように設定することは可能でしょうか?(無知ですみません) 可能な場合、PostgreSQLにおける上記の具体的な実施方法を教えて頂けないでしょうか?(お恥ずかしい限りではありますが、そもそもこの方法が妥当かどうかも判断できていないです) 上記の中で、質問者はデータベースのことを分かっていないと判断されましたら、合わせてアドバイス・一般論なども頂けると幸いです。 何卒、よろしくお願いします。
質問日時: 2012/10/09 23:42 質問者: MIDDLETOWN
ベストアンサー
1
0
-
PostgreSQLと、AccessをODBC接続
PostgreSQL初心者です。 AccessからPostgreSQLに移行しようと思い、ODBCで接続しようとしたのですが、エラーが発生して進めません! そして、いろいろ試してみたのですが、同じエラーが発生してしまいます。 設定、エラー内容は、下記になります。 エラー内容 「ODBC--呼び出しが失敗しました。 Could not connect to the server; Could not resolve hostname.(#101)[Microsoft][ODBC Driver Manager]ドライバのSQLSetConnectAttrは失敗しました。(#0)」 設定 データソース(ODBC)→システムDSN→PostgreSQL Driver Setup Database Server dbserver User Name localhost Description Port 5432 以上、宜しくお願い致します。 OS:WindowsXP Professional Version 2002 Service Pack3 PostgreSQL 9.1 Version 1.14.3 Access XP(2002) になります。
質問日時: 2012/09/12 13:58 質問者: upsong
ベストアンサー
2
0
-
外部プログラムを実行する方法について
お世話になります。 データが更新された段階で、外部プログラム(xxx.exe)を実行したいと考えております。 おそらく、トリガを利用すれば可能かと思い調査しておりますが、 どのようにして外部プログラムを実行すればよいか分かっておりません。 ご存知の方、ご教示頂けないでしょうか。 よろしくお願いいたします。
質問日時: 2012/08/01 15:33 質問者: sunshine777
ベストアンサー
1
0
-
行の結合?
こんにちは。 SQLについて質問です。 id name goal 1 山田 東京 2 木下 北海道 3 高橋 大阪 3 高橋 沖縄 こういう状態でデータが入っていたとして、 idが3の高橋はgoalが違う状態で2件データがあります。 これを、 id name goal 1 山田 東京 2 木下 北海道 3 高橋 大阪、沖縄 こうなるようにしたいのですが、 どうSELECT文を書けばよいでしょうか? よろしくお願いします。
質問日時: 2012/07/19 15:18 質問者: investigate
ベストアンサー
1
0
-
psqlの一部でエラー
あるサーバーにDBのダンプをインポート仕様としています psql - U postgresで接続できていることは確認してあります psql -h localhost -U postgres -f xxxxxx.dump xxxxxx とうつとIdent authentication failed for user "postgres"とFATALが出て インポートかでません pg_hba# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident.confには下記になってます どうしてでしょうか?
質問日時: 2012/07/17 00:45 質問者: k_leaf
解決済
1
0
-
ReIndex処理の頻度
PostgreSQLによるデータベースを運用しています。 メンテナンス処理で、Vacuum処理は毎日バックアップ取得時に行っていますが、 ReIndex処理は1週間に1度程度行っています。 ReIndex処理も毎日行ったほうがよいのでしょうか。 よろしくご教授ください。
質問日時: 2012/07/09 15:48 質問者: Horirin39
解決済
1
0
-
PostgreSQL のバージョン変えるとどうなる
PostgreSQL のバージョンアップを検討しています。 Version 9.1.4 Version 8.3.19 Version 8.3.1と比べると機能・性能・セキュリティなどが良くなっているのですか? phpからの操作の仕方や挙動が変わるとかあるのでしょうか。 Version 8.3.19 の方がよいですしょうか。
質問日時: 2012/06/10 21:40 質問者: kiseki777
ベストアンサー
1
0
-
黒猫SQL で ポストグレに接続したい。
色々、試しているのですがうまくゆきません。 どうしたらよいでしょうか? ポストグレのドライバを設定するところがあるのですが、 何を設定していいか分かりません。
質問日時: 2012/06/08 02:15 質問者: hunt9999
ベストアンサー
3
0
-
テーブル定義書作成時のIndex付加について
基礎的なことで申し訳ございませんが、 お力添えよろしくお願いいたします。 CentOs 5 & PostgreSQL 8.4.9にてDB構築しております。 DB構築から、テーブル作成・項目追加・キー設定まで行いまして、 検索する際に、抽出件数が多く負荷のかかりそうなものに Indexを作成しようと考えております。 ■本題 1.Indexを作成する対象となる項目の、目安としてどのようなものが考えられるでしょうか。 ・キー対象の項目になっているもの ・検索条件の対象となる項目なども当たるでしょうか 2.項目をまとめて一つのIndexにするメリット・デメリットはどのようなものでしょうか 3.テーブル結合したときのIndexの動作 例) 下記のようなテーブルがあった場合 tablea(データ50000件程度) hoge_id pkey1 hoge_no hoge_nm ... tableb(データ150000件程度) test_id pkey1 hoge_id pkey2 hoge_betu_kb ... select t1.hoge_id, t1.hoge_nm, t2.hoge_betu_kb rom tablea as t1 leftjoin tableb as t2 on t1.hoge_id = t2.hoge_id where t1.hoge_id > '100' and t1.hoge_nm like 'あいう%' このような場合のIndex作成は、 A. Create index idx_tablea_hoge_id ON tablea (hoge_id); B. Create index idx_tablea_hoge_id ON tablea (hoge_nm); C. Create index idx_tableb_hoge_id ON tableb (hoge_id); ←tableaで指定しているのでこれは不要? 4.A.B.C.のようなIndex作成した際のテーブル定義の書き方 テーブル定義書のフォーマットは定められており、お門違いな質問かとは存じてはおりますが、 テーブル定義にIndex定義を書く場合に、添付した画像のようなフォーマットの書き方が よく理解できずお気づきの点などございましたら、ご指摘願えたら助かります。 (以前は、CSEツールなどで自動出力される定義書のような書き方をしていたもので・・・) 例)tablea IDX1 IDX2 IDX3 hoge_id 1 hoge_nm 2 このような書き方になるのかどうか? IDX2, IDX3の項目とは?どのようなIndex定義をした際に書き込むことになるのかが判らず。。。 基礎から勉強しなおすべきとは存じておりますが。。。 現状の期間あまり時間がないことと、 DB構築を一人で行っており、このような内容を相談できるものがおりませんゆえ、 改めて、Index付加することを考えてみると、いまさら聞けないような内容かもしれませんが ちゃんと把握したうえで、テーブル構築したいと思いますので 今までの他の皆様の経験からのノウハウなども踏まえて、 ご教授いただけると大変助かります。
質問日時: 2012/05/31 10:59 質問者: -0-y
ベストアンサー
1
0
-
sqlにて0無しの月をフォーマットする方法
質問させていただきます。 DB:postgresql 言語:PHP タイトルの通りなのですが、 現在下記のような形でSQLを実行しています。 「to_char(created, 'YYYY年MM月') as created_styled,」 しかし、この形では月の部分が01月と0を含んだものになってしまいます。 MySQLであれば、%cを使用すれば0無しの月を生成出来るようなのですが、 postgresqlでも同じような機能は無いのでしょうか? また、無理にSQL側で処理を行う必要も無いので、データを取り出した後での処理方法でも構いません。 もしこういった場合に一般的な0を消す対処方法があれば教えて頂けると助かります。 よろしくお願い致します。 また、質問に不備などがあればすぐに修正致しますので、その際はご指摘お願いします。
質問日時: 2012/05/28 22:14 質問者: non05410
ベストアンサー
1
0
-
DBのパフォーマンス、ライセンス費用について
これから、商用のパッケージでシステム開発を行おうと思っています。 そこで、DBの選定をしている最中なのですが、 出来るだけコストをかけないでしたいので、 PostgreSQLで考えています。 (商用アプリでも無料ということだったので) ですが、MySQLやその他の商用DBも含めて、 費用(ライセンス)や速度、メモリ消費などのパフォーマンスで 何のどこが優れているかを教えていただきたいと思います。 (未チューニングの状態で) また、サイトなどのURLでも構いません。 よろしくお願いします。
質問日時: 2012/05/26 17:14 質問者: evil_lk
解決済
3
0
-
マルチコアを使ってくれない
4コアのCPUですが、CPUのうち1つだけが使用率100%で、他のCPUを使ってくれず困っています。 対処法が解る方、助言をお願いします。 @環境 Linux version 3.2.12-gentoo Intel(R) Core(TM) i5-2400S CPU @ 2.50GHz postgresql-server-9.1.3
質問日時: 2012/05/25 23:09 質問者: shiren2
ベストアンサー
1
0
-
CREATE VIEWについて
2つのテーブル(basecodeとaddcode)からVIEWを作りたいのですが、 そのVIEWについてご教授いただきたく。 <TABLE名:basecode> ---------------------- no name area code ---------------------- 1 aaaa 2 102 2 bbbb 4 103 3 cccc 4 203 4 gggg 3 303 5 eeee 3 101 6 ffff 5 104 7 hhhh 1 115 ---------------------- <TABLE名:addcode> ----------------------------------------- base anum bnum cnum dnum dmy no ----------------------------------------- bbbb 1 1 1 1 aaa 2 cccc 12 13 10 2 aaa 3 cccc 12 13 10 0 aaa 3 cccc 12 13 10 5 aaa 3 dddd 12 15 3 1 aaa 3 dddd 12 15 3 3 aaa 3 dddd 12 15 3 4 aaa 3 eeee 10 3 12 1 aaa 5 eeee 10 3 12 2 aaa 5 eeee 10 3 12 3 aaa 5 eeee 10 3 12 4 aaa 5 eeee 13 12 15 3 aaa 5 eeee 13 12 15 0 aaa 5 eeee 13 12 15 1 aaa 5 eeee 13 12 15 2 aaa 5 hhhh 4 3 11 0 aaa 7 hhhh 4 3 11 2 aaa 7 hhhh 4 3 13 2 aaa 7 kkkk 0 0 0 0 aaa 9 ----------------------------------------- VIEWの抽出は以下の通り。 basecodeのno basecodeのname basecodeのcode addcodeのbase addcodeのanum addcodeのbnum addcodeのcnum addcodeのdnum VIEWの作成条件としては以下の通り。 <条件> TABLE名:basecodeとaddcodeのnoが存在し、かつ、 baseaddのnoが複数あり、baseが同じものは以下で判断 ・anumとbnumとcnumが同一であればその中のdnumが最小であるレコードを抽出 ・anumとbnumとcnumが異なれば別々に抽出 上記より、以下のように抽出したい。 <TABLE名:basecodeview> ----------------------------------------------- no name code base anum bnum cnum dnum ----------------------------------------------- 2 bbbb 103 bbbb 1 1 1 1 3 cccc 203 cccc 12 13 10 0 3 cccc 203 dddd 12 15 3 1 5 eeee 101 eeee 10 3 12 1 5 eeee 101 eeee 13 12 15 0 7 hhhh 115 hhhh 4 3 11 0 7 hhhh 115 hhhh 4 3 13 2 ----------------------------------------------- よろしくお願いします。
質問日時: 2012/04/29 21:45 質問者: atok12abc
ベストアンサー
2
0
-
SQLについて
aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 111 111 111 111 111 111 111 112 112 112 112 112 112 111 112 113 113 113 113 113 111 114 114 114 114 114 114 111 114 114 114 114 114 114 112 114 115 115 114 114 115 111 114 115 115 114 114 115 112 116 116 116 116 116 116 111 116 116 116 116 116 116 112 116 116 116 116 116 117 111 116 116 116 116 116 117 112 118 118 118 118 118 118 118 上記のようなデータより、SQLのSELECTを使用して、以下のように抽出したいです。 抽出条件は以下が全て満たしているものとなります。 ・aaa,ccc,ddd,eee,gggが重複、hhhが小さいもの ・bbbが異なるもの aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 112 112 112 112 112 112 111 ・・・(1) 112 113 113 113 113 113 111 ・・・(1) 114 114 114 114 114 114 111 ・・・(2) 114 115 114 114 114 115 111 ・・・(2) (1)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 (2)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 また、hhhが小さいもの 以上、よろしくお願いします。
質問日時: 2012/04/28 16:32 質問者: tkrato88
ベストアンサー
4
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【PostgreSQL】に関するコラム/記事
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgresql についてです
-
SQLにて指定日付より前、かつ最新の...
-
自治会総会の成立要件について
-
エクセルで縦のカラムデータをカン...
-
PostgreSQLについて教えてください ...
-
postgreSQLのint型は桁数指定ができ...
-
列が存在しないと言われる
-
PostgreSqlでFunctionの作成について
-
Windows10でQuickTimeがインストー...
-
postgresqlでのトランザクションに...
-
plgファイルの開き方
-
PostgressからMySQL(MariaDB)へ構...
-
SQLでUPSERTを一度に複数行やる方法
-
PostgreSQL インストール 起動できない
-
postgresqlのtableのカラムの型をbi...
-
PostgreSQL14.6のSSL対応について
-
SQLで期間をずらした集計処理
-
php、postgresqlを使ってwebアプリ...
-
画像とカテゴリーを出力したいので...
-
SQLで検索結果の記事を表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自治会総会の成立要件について
-
postgresql についてです
-
postgreSQLのint型は桁数指定ができ...
-
SQLでUPSERTを一度に複数行やる方法
-
plgファイルの開き方
-
SQLにて指定日付より前、かつ最新の...
-
select文の書き方「半角カナ+英+...
-
エクセルで縦のカラムデータをカン...
-
PostgreSqlでFunctionの作成について
-
postgresqlでのトランザクションに...
-
新規作成したPostgresqlデータベー...
-
select文の書き方で分からないとこ...
-
列が存在しないと言われる
-
PostgreSQLについて教えてください ...
-
shellからpostgresqlへの変数の引き...
-
Windows10でQuickTimeがインストー...
-
Postgreのupdateコマンドでエラー
-
bashスクリプトでpostgreSQLの日付...
-
Windows10がインストールできません...
-
PostgresSQLの環境設定について
おすすめ情報