回答数
気になる
-
PostgresSQLのクライアント認証
VC++ 2008からデータベースにアクセスしようとしていますが fe_sendauth : authentication type 5 not supported となってしまいました。 いろいろ探してpg_hba.confファイルの中のクライアント認証 を「md5」->「password」に変更したら 無事クライアント認証を行えるようになれたのですが md5のままで今回は行わなければならなくなってしまいました どなたかmd5のまま認証を行える方法をご存知の方いらっしゃいましたら 教えていただけないでしょうか?
質問日時: 2009/09/09 09:41 質問者: vis3sock
ベストアンサー
1
0
-
デットロック回避策(autocommit off)について
環境:LINUX Postgres8.4.0 デットロックを回避する為に、自動コミットをやめ、手動コミットに変更したいです。 psqlで\set AUTOCOMMIT offとすると確かに手動コミットになってしまいますが、 毎回設定するのは、手間がかかるのとシステム全体に反映されません。 システム全体を手動コミットに変更するには、どうしたら宜しいのでしょうか?
質問日時: 2009/08/28 11:00 質問者: marina1600
ベストアンサー
3
0
-
postgresにクライアントpcから接続できない。
いつもお世話になっております。 社内にテスト環境を作成しようと、CentOS 5 にpostgres8.4.0をインストールした所、そのサーバ自体からは、dbの作成、tableの作成等sqlの発行は出来るのですが、同じネットワークのwindowsクライアントマシンからpgAdminIIIで接続しようとした所、左下に "データベースに接続...失敗しました"とエラーがでてしまいます。 サーバの設定 "pg_hba.conf"は host all all 192.168.0.0/16 trust を追加(クライアントはこのアドレス内です) "postgresql.conf"は listen_addresses = '*' port = 5432 の行を上記のように変更 CentOSのサーバにはping飛びます。 pgAdminの設定は、 アドレス(サーバIP)、記述(設定名)、DBメンテナンス(DB名)、ユーザー名(postgres)、portはそのまま"5432" で接続しようとしています。 サーバ側のインストール手順は実際に行った手順を書いてましたが、 添付ファイルのような感じです。 どこがいけないか調べるにはどのようにすれば良いでしょうか。 よろしくお願いします。
質問日時: 2009/08/26 19:40 質問者: take_july
ベストアンサー
2
0
-
odbc接続処理が遅い
vb.netにてプログラムを作成して使用しており、DBはpostgresqlをodbc接続にて使用しております。 ある端末で処理が極端に遅く、デバッグにて検証したところ、DB処理で時間がかかっていることがわかりました。 それに伴い同端末で別システムのoracleへのodbc接続も同じ現象となっている状況です。 この端末ではpostgresqlのodbcドライバの入れ替えを行ったことがあり、その頃から遅くなったようです。 また、別の全く同じ環境の端末では特に問題ない処理速度で稼働しております。 odbcドライバの入れ替えは何度か行っておりますが改善されません。 改善方法をご存じの方はおられますでしょうか?
質問日時: 2009/08/26 14:44 質問者: m777777777
ベストアンサー
2
0
-
POSTGRESQL 検索スピードが遅い
テーブル結合検索、インデックス使えない原因を Aテーブルは200000件のデータがあり、Bテーブルは4000000件のデータがあります。 テーブルA(ヘッダ) A001 NUMBER(10) NOT NULL, A002 NUMBER(8) NOT NULL, A003 CHARACTER(2) NOT NULL, ... PRIMARY KEY(A001) INDEX A1(A002, A003) テーブルB(明細) B001 NUMBER(10) NOT NULL, B002 NUMBER(3) NOT NULL, B003 NUMBER(7) NOT NULL, ... PRIMARY KEY(B001,B002) INDEX A1(B001) SELECT A.A001, B.B003 FROM A, B WHERE A.A001 = B.B001 AND A.A002 >= 20090728 AND A.A002 <= 20090801 AND A.A003 = '01' 実行計画を見ると、Bテーブルのインデックスが使わなかった。 同じSQLで、条件だけ変わると、Bテーブルのインデックスが使った。 SELECT A.A001, B.B003 FROM A, B WHERE A.A001 = B.B001 AND A.A002 >= 20090728 AND A.A002 <= 20090731 AND A.A003 = '01' 原因を知りたいです。 また、他のHPからテーブルの結合の説明がありました、 直積結合の回避 * 直積結合は、結合対象の2つのテーブルの全レコードの組み合わせを戻す処理 * SQLが複雑で、結合条件や絞込み条件に漏れがあると直積結合が選択されるかも tableA = 1000 件、 tableB = 2 万件 の直積結合 1,000 * 20,000 = 20,000,000 2000 万件処理されてしまう が、結果が正しいと気付かない事も。 データ量が増加すれば、致命的な性能劣化に 参考URL: http://www.slideshare.net/kwappa/20090107-postgre-sqlsql-presentation 上記のこと教えていただきたいんです、お願いします。
質問日時: 2009/08/24 11:54 質問者: zb_jiang
解決済
4
0
-
¥を含む文字列を挿入するとエラーとなります
こんにちわ、よろしくお願いします。 OS:WindowsXP PostgreSQL:8.4.0 DBの文字コードはUTF8で構築しています。 【現象】 文字型のカラムに¥を含んだ文字列を挿入しようとすると以下のエラーになります。 WARNING: nonstandard use of escape in a string literal at character 331 SQL実行中に以下のエラーが発生しました。 ERROR: invalid byte sequence for encoding "UTF8": 0x00 エラーとなるのは例えば「C:\temp\hoge.txt」といった文字列です。 ただし、 「C:/temp/hoge.txt」 「C:\\temp\\hoge.txt」 とした場合は正常に挿入が出来ます。 8.1.11で同じプログラムを動かしているときは問題なく動作していました。 PostgreSQLを最新の8.4.0にバージョンアップしたところ上記のエラーが発生するようになりました。 エンコードの問題かと思い Postgresql.confのclient_encodingを色々設定してみましたが、解決しませんでした。 解決法が見当たらず困っています。 よろしくお願い致します。
質問日時: 2009/08/19 01:13 質問者: daye001
解決済
2
0
-
PostgreSQLで外部DB内のテーブル参照方法を教えてください
PostgreSQLで別データベースのテーブルを参照することはできますか? 仮に以下のデータベースが2つあるとします CREATE DATABASE common_db ... CREATE DATABASE app1_db ... app1_db に接続した状態で common_db のテーブルを参照することはできますか? 仮にcommon_dbに郵便番号テーブル postcodeがあるとします CREATE TABLE postcode ( postcode text, --郵便番号 pref_name text, -- 県名 ・・・ ) このpostcodeテーブルをapp1_dbに接続した状態で参照するには、どのような参照クエリになりますか? ご教授の程よろしくお願います。 そもそもできないのでしょうか?
質問日時: 2009/08/19 00:50 質問者: tty911
ベストアンサー
1
0
-
SQLでのデータ検索方法
以下のようにデータが格納されている テーブルAがすでにあります。 id in_time out_time 1 11:10 1 10:30 1 10:15 3 09:50 1 09:30 1 09:00 1 08:30 2 08:10 1 07:50 2 07:40 1 07:30 ここでin_timeとout_timeの範囲が指定されたとき 範囲内でidごとにin_timeとout_timeがセットにな っているデータのみ抽出したいのです。 例えば in_time:7:00~10:20 out_time:8:00~11:30 と指定されたとき、検索結果を id in_time out_time 1 10:15 1 09:30 1 09:00 1 08:30 2 08:10 2 07:40 と表示したいのです。 プログラムで1レコードずつ処理するしかない と思っているのですが、SQLで上記のような結果 を取得する方法はあるのでしょうか。 環境は、 RHEL 5 postgesql 8.1.9 です。
質問日時: 2009/08/12 11:18 質問者: mlc56724
解決済
4
0
-
Postgresのデータ領域の拡張について
RHEL4.6にPostgres8.1.11をインストールしています。 データ領域のファイルシステムはext3です。 データ領域の拡張が必要になった場合は、新しくext3の領域を用意しデータ領域を丸ごと移動しなければいけないでしょうか? 以上、よろしくお願いします。
質問日時: 2009/08/11 23:13 質問者: usodahei8
ベストアンサー
1
0
-
AccessShareLock はどの程度気にする必要がある?
PostgreSQL8.2とJavaを使ったWebアプリケーションを構築しています。 pgAdminでサーバー状態>ロック で参照してみたところ、AccessShareLockというのが大量に発生していました。 マニュアルを参照してみたところ、 >AccessShareLock を除き,トランザクション内で獲得されたすべての ロックモードは,そのトランザクション実行の間維持されます. とあり、つまりAccessShareLockはトランザクションの間でも維持されないということだと思うのですが、どうも解放されてはいないようです。 これは通常の(つまり、更新しない)select文を発行したときに発生するロックだと思うのですが、いろいろ調べても、どうもこのAccessShareLockというのをどのくらい気にしたらいいのかがわかりません。 このロックが残っていると、どのようなときに困るでしょうか。 また、解放するためには通常のselectのあとでもcommit(またはrollback)をする必要があるということになるでしょうか。その際にはcommitとrollback、どちらがいいということはあるでしょうか。 ご存じのかたがいらっしゃいましたらご教示いただければと思います。よろしくお願いいたします。
質問日時: 2009/08/11 15:14 質問者: annyG
ベストアンサー
3
0
-
シーケンスのリストを取得したい。
いつもお世話になっております。 インターネットサーバー上のPHPから postgreSQLのデータベース内の テーブル名とシーケンス名のリストを SELECTを使ったSQL文にて取得したいのです。 テーブルリストは、 select * from pg_tables where not tablename like 'pg%' order by tablename; で取得できましたが、 シーケンス名のやり方がわかりません。 phppgadminでシーケンスの表が表示できるので、 phpでも出来ると思うのですがわかりません。 お知恵をおかしください。 hiroko
質問日時: 2009/08/11 11:05 質問者: hiroko2009
解決済
3
0
-
FedoraのPostgreSQLを使ってますが
PostgreSQLで作ったデータベースを 別のFedoraのPCに入れたいのですが どのファイルを古いPCから新しいPCにコピーしたら いいでしょうか? よろしくお願いします。
質問日時: 2009/08/10 21:51 質問者: reiman
ベストアンサー
2
0
-
PostgreSQLが再インストールできないのですが・・・
失礼します。 実は最近、授業で必要だということでPostgreSQLの8.3.7を インストールしたのですが、1度目は上手く起動したのは いいのですが、2度目から、なぜかパスワードが全く合わず PostgreSQL Database Sever8.3に接続することができなくなりました。 (パスワードは外部に接続しないということなので 忘れないように「password」にするようにとのことだったので パスワードが間違っていることはまずありえません。) どこかのサイトでpg_hbaファイルの最後にあるmd5をtrustに 変えればできるとあり、やってみたのですが、上書き自体不可能 でした。 とりあえず、再インストールしようとして、1度削除し、 インストールしなおそうと思ったら、インストール画面で ユーザー名、パスワードを入れる欄があり、何度やっても、 「パスワード」が間違っています、と表示され、先に進めません。 (何も入力しなくても、passwordと入力しても先に進めません。) 教授やスタッフに聞いてみたのですが、日本語が読めないため 助けられないと結局、放置されています。 ただ、授業でどうしても必要らしくできることならば、 もう1度インストールして使用したいのですが、 何か手があるならば教えて頂きたく、 質問させて頂いたのですが・・・ もし、よろしければ、ご回答お願いします。
質問日時: 2009/08/10 18:09 質問者: kiichi0805
ベストアンサー
2
0
-
TO_NUMBERの結果は、カラムに追加できない?
いつもお世話になっています。 TO_NUMBER実行時、結果はnumeric型で取得できると思うのですが、 その値をカラムに追加することはできるのでしょうか? insert into number2 values((select numberStr,TO_NUMBER (numberStr,'000.000') from number),'aaa'); 実行すると、 副問い合わせは1列のみを返さなければなりませんというErrorが生じます。 なのでwhere句を追加しましたが、結果は同じです。 実行したsqlは、 create table number ( count integer not null primary key, numberStr varchar(20) not null ); create table number2 ( no numeric not null primary key, numberS varchar(30) not null); insert into number values(5,'555.55000'); insert into number2 values((select numberStr,TO_NUMBER (numberStr,'000.000') from number where count=5),'aaa'); です。 宜しくお願いします。
質問日時: 2009/08/06 08:39 質問者: kannitiha
ベストアンサー
1
0
-
PostgreSQLの学習について
PostgreSQLの勉強したのですが、いい参考本かいいサイトを教えてください。 よろしくお願いします。
質問日時: 2009/08/05 18:49 質問者: sato-kibi
解決済
1
0
-
データベースの登録内容を確認すると文字化けしている
現在、 PostgreSQL 7.4.7 PHP Ver4.3.6 の環境を使用しており、 【php.ini】(以降設定ファイルと略)の設定は、 default_charset = Shift-Jis ・・・ mbstring.http_input = auto mbstring.http_output = SJIS mbstring.internal_encoding = SJIS mbstring.language = Japanese となっており、この設定で既にいくつかのデータベースが作成されて いるのが現状です。 このデータベース内の一つに日本語以外の中国語(Big5ではなくUnicodeで)を(設定ファイルを変更せずに)登録できるようにしたいと考え、データベース作成時に createdb -E UNICODE chinese-table と指定して作成しました。 次に(外注依頼の)外部プログラムから中国語で登録・修正・削除等を行ったところ、入出力に関しては正常に行われたのですが、 windows の コマンドプロンプトから telnet を使用して データベースを参照したところ、中国語ではなく$%等を使用した 文字を使用しての表示(文字化け)になってしまいます。 いろいろサイト等で原因を探してみたのですが、encoding が原因 なのではないかというところまではたどり着いたのですが、どういたらいいのかわからない為、どうかご教授の程よろしくお願いいたします。 最後に、返信に少し時間がかかると思うのですが、最後までご指導して いただければと思いますので、よろしくお願いいたします。
質問日時: 2009/07/22 19:54 質問者: oren-cham
解決済
2
0
-
pg_dump 等における接続パスワードについて
いつもお世話になっております。 WinXPPro上で、PostgreSQL8.3を動かしています。 タスクマネージャによるバックアップ処理を行うためにバッチ ファイルを作成しました。 ホスト名やDB名などはバッチコマンド内の変数に記述しているの ですが、ホスト名をIPアドレスではなく、マシン名に変えると、pg_dumpやvacuumdbにおいてパスワードを聞かれるようになりました。 なぜ、マシン名でホスト指定を行うとパスワードを聞かれるので しょうか?逆に言えば、なぜIPアドレスによるホスト指定の場合は、 ユーザー名だけで認証OKとなるのでしょうか? よろしくお願いします。
質問日時: 2009/07/17 13:44 質問者: gongon8
解決済
1
0
-
postgreSQLで更新後のデータを取得したい。
postgreSQLで更新後のデータを取得したい。 初めて質問させていただきます。 postgreSQLでupdateした後、更新後のデータをselectで取得したいのですが、 トランザクションが完了するまでにselect文が発行されているみたいで、更新前のデータを取得してしまいます。 それぞれ、違うファイルから投げられているので、同じトランザクションにすることはできません。 何かいい方法があればご教授お願いします。 a.phpで下記のSQLを発行 update test_tbl set test1 = 'aaa' where test2 = 'bbb' a.phpが走っている間に、下記のb.phpが実行される。 select test1 from test_tbl 環境 php5 postgres8.1
質問日時: 2009/07/14 16:46 質問者: yamabaka_y
ベストアンサー
3
0
-
カラムの関係が多対多の場合の集計方法
ページ名 | ユーザID mypage | 2 other | 2 other | 4 mypage | 2 index | -1 index | -1 mypage | 2 other | 3 other | 2 mypage | 2 index | -1 index | 3 上記のテーブルのように、ページ名とユーザIDが多対多のような関係になっている時に、 各ページにアクセスしてきたユニークユーザ数を取得したいと考えております。 上記の例ですと、求めたい答えは下記となります。 mypage:1 アクセスしたユーザは、2だけなので、ユニーク数は1 index:2 アクセスしたユーザは、-1と3なので、ユニーク数は2 other:3 アクセスしたユーザは、2と3と4なので、ユニーク数は3 group byで分けて集計すれば良いと単純に考えたのですが、 selectの対象は、group by の対象で無ければならないみたく、 どのように集計すれば良いのか、とても困っております。 大変申し訳ありませんが、ご教授願えませんでしょうか? 宜しくお願い申し上げます。
質問日時: 2009/07/06 15:57 質問者: akiko117
ベストアンサー
2
0
-
開けなくなったデーターベースから、せめてデータだけでも救いたいのですが方法はあるのでしょうか?
OSはWindows Server 2003 for Small Business Serverで、 PosstgreSQL 8.2です。 ブラウザーで動くシステムですが、完成していてずっと動いていたものが、ある日突然起動してパスワードが通るとすぐにエラーメッセージが出て何もできなくなりました。完成してから問題が起きるまで、システムを利用し、データーベース入力をする人はいても、プログラムに手を加えることはありませんでした。なのに、突然エラーが起るようになったらしいのです。 エラーメッセージを下に表示しますが、このようなメッセージの経験のあるかたがいらっしゃったら、どういうことを言っているのか教えていただけませんか? 壊れてしまったのか、手を加えられた(人為的に)可能性があるのか? 直せる可能性はあるのか?せめてデーターだけでも救えないのか? そんなことが少しでもわかることができれば本当に助かります。 エクセルにデーターを取り込もうとしましたが、そもそもODBCに接続ができないようで一たん断念しました。 よろしくお願いします。 エラーメッセージは: Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "localhost" and accepting TCP/IP connections on port xxxx in 以上です。よろしくお願いします。
質問日時: 2009/07/01 15:35 質問者: soltedcoco
ベストアンサー
4
0
-
データベース一覧を確認する方法
シンプルな質問ですが、 データベース一覧を確認する方法を教えてください。 以外にサイトに載っておりません。 宜しくお願いします。
質問日時: 2009/07/01 10:16 質問者: level2012
ベストアンサー
3
0
-
バキュームフルについて
Postgresqlの運用をしています。 定期的にバキュームフルをしようと思うのですが、バキュームフルを実行しているときにDBへの操作(select、insert、update、delete)は可能でしょうか? リスクを考えて実行しなければいけないようでしたら、参考になるようなサイトを教えていただけないでしょうか。 よろしくお願いします。m(_ _)m
質問日時: 2009/06/28 18:09 質問者: usodahei8
ベストアンサー
1
0
-
libpqについて
現在C言語でPostgeSQLを扱えるようにしているんですが、上手くできません。 プログラムはこんな感じで作っているんですが、 res=PQexec(con,SQL文1); PQclear(res); res=PQexec(con,SQL文2); PQclear(res); res=PQexec(con,SQL文3); PQclear(res); この時、SQL文1しか実行されません。最初のPQexecをコメントアウト するとSQL文2しか実行されません。 目標としてはSQL文で順番に問い合わせするようにしたいんですが、 何かいい方法があれば教えてください。よろしくお願いします。
質問日時: 2009/06/24 21:12 質問者: rzu
解決済
1
0
-
SQLに画像を入れて、PHPで表示させる方法
はじめまして、sqlとかphpを学んでいる大学生です。 sqlに画像を入れて、表の中に画像を表示させたいのですが、sqlに画像を入れることはできるのでしょうか?それはどの様なプログラムでできるのでしょうか? また、それを表示させるには、どのようにすればいいのでしょうか。 質問が多く申し訳ございません。よろしくおねがいします。
質問日時: 2009/06/22 16:17 質問者: kairi88
解決済
2
0
-
csvファイルのデータを既存のデータと比較して重複なし登録
タイトルのままなのですが、 csvファイルのデータを既存のデータと比較して重複なしで登録する方法を教えて下さい。 重複というのは、商品IDみたいなものです。
質問日時: 2009/06/11 14:03 質問者: level2012
ベストアンサー
1
0
-
Npgsqlを用いて接続を行いたいのですが…
C♯、PostgresSQL 8.3.7環境です。 クライアント側からDBへの接続が出来なくて困っています。 「Npgsql2.0.5-bin-ms.net」をダウンロードし、VisualStudioより Npgsql.dllの参照を追加しました。 DB接続を行うクラスにて、 using System.Data; using Npgsql; を記述、下記のようにコネクションを開いて閉じるだけのコードを 書いてみました。 //接続のテスト NpgsqlConnection conn = new NpgsqlConnection("Server=xxx.xxx.xx.xx;Port=5432;User Id=xxxx;Password=xxxx;Database=xxxx;"); conn.Open(); conn.Close(); しかし、conn.Openの段階で、添付画像のエラーが出ます。 (IOException) サーバ側の設定はノータッチなのですが、担当者はlisten_addresses = '*' は しているとのことでした。 修正、確認すべき箇所をご教授いただけないでしょうか。 宜しくお願いします。
質問日時: 2009/06/11 11:47 質問者: ginfix
ベストアンサー
2
0
-
プログラムよりファンクションで結果を取得したい
お世話になります。 vb.net+PostgreSQLでプログラムを作成しております。 接続は「Npgsql.dll」を使用してます。 そこで、プログラムよりファンクションをコールし、 引数で渡した値に一致する結果の取得をしたいのですが、 パターン(2)の様に引数の記述を行うと結果の取得ができません。 どなたか引数で指定した値に一致した結果を取得する方法を お教え頂ければと思います。 【パターン(1)】正常に結果の取得ができた CREATE OR REPLACE FUNCTION pr_select_ok() RETURNS SETOF refcursor AS $BODY$declare cur refcursor; 条件 numeric; begin 条件 := 999; open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ; return next cur; return; end$BODY$ LANGUAGE 'plpgsql' VOLATILE 【パターン(2)】結果の取得ができない CREATE OR REPLACE FUNCTION pr_select_ok(条件 numeric) RETURNS SETOF refcursor AS $BODY$declare cur refcursor; begin open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ; return next cur; return; end$BODY$ LANGUAGE 'plpgsql' VOLATILE 以上、よろしくお願い致します。
質問日時: 2009/06/10 18:34 質問者: pgsql_help
解決済
1
0
-
PostgreSQLでポート変更ができない
ポートを変更する必要があり、postgresql.confを port=5433 と編集し再起動したのですが、 netstatコマンドで確認したところ、変わらず5432で動いています。 他に何か必要な作業があるのでしょうか? 環境はCentOS5.2+Postgresql8.3です。
質問日時: 2009/06/03 08:25 質問者: oioo
解決済
1
0
-
【SQL】existsでの商演算
閲覧ありがとうございます. 現在SQLでデータベースの勉強をしているのですが,existsを用いて商演算を行おうとしてわからない箇所が出てきたので,その点に関しての質問をさせて頂きます. 例として,A,Bと名付けた2つのテーブルを最初に用意します. [テーブル1(名前:机1)] | 番号 |氏名|年齢| 好物 | --------------------------- | 12 | あ | 1 | りんご | | 23 | い | 1 | すいか | | 23 | い | 1 | りんご | | 45 | え | 3 | すいか | | 45 | え | 3 | りんご | [テーブル2(名前:机2)] | 好物 | ---------- | りんご | | すいか | この机1を机2で割ることで,この要素を含む氏名を取り出したいと考えて,以下のようなSQL文を実行しました. select 氏名 from 机1 A where exists( select * from 机2 B where A.好物 = B.好物); [求めている結果表示] | 番号 |氏名| ------------- | 23 | い | | 45 | え | [実際に表示された結果] | 番号 |氏名| ------------- | 12 | あ | | 23 | い | | 23 | い | | 45 | え | | 45 | え | 実行すると (1)氏名が重複で表示されてしまう (2)「りんご」のみ好物の「あ」も表示されてしまう という問題が発生してしまい,色々と調べて考えたものの,結局分からなかったので,今に至ります. 長文・駄文すみませんでした. まだSQLを学び初めて少ししか経っていないので,全く違うことをしていたらすみません.よろしければ,問題解決へのアドバイスをお願いします.
質問日時: 2009/05/27 14:23 質問者: logged
ベストアンサー
3
0
-
【SQL 2つのコードが重複する場合、除外して集計する】
色々試行錯誤していますが、データの出力が正しくできません。 本日、別の質問を記載したのですが、上手く質問がまとまっていなかったために再度投稿したします。 統括会社(テーブルA)ごとにお店の評価を出力したいと思っています。 ただ、上手くできなくて困っています。 ======================== 行いたいこと ======================== テーブルは3つあります。 テーブルAは統括会社のテーブル、Bは店情報、Cはお店の評価結果です。 行いたいのは、統括会社のグループコードごとに、統括会社傘下のお店の評価結果の合計を表示することです。 その際、期間(登録日)を指定して合計値を表示するといったことを行いたいです。 ただ、評価結果の合計を算出する際に、お店(店名コード)ごとに過去の評価結果に”○”がついた項目CDは、重複しない形で計算をしたいです。 例) 項目CD”1-1-1”で店名コード"AAA"の評価結果が"○"が2つ、店名コード"BBB"の評価結果が"○"が零(0)、店名コード"CCC"が"○"4つの場合 評価結果2として算出 ================= テーブル ================= ■テーブルA →統括会社のテーブルです グループコード グループ名 ------------------------------------- AAAA ああああ BBBB いいいい CCCC うううう ■テーブルC →店情報のテーブルです 店名コード グループコード ------------------------------------- ららら AAAA せせせ BBBB ししし CCCC ■テーブルB →店の評価結果をもつテーブルです 項目CD 評価結果 店名コード 登録日 ------------------------------------- 1-1-1 ○ ららら 2000-10-10 1-1-1 ○ ららら 2007-12-10 1-1-1 × せせせ 2006-12-16 1-1-1 ○ ししし 2009-04-16 1-2-1 ○ ららら 2004-10-16 1-2-1 ○ せせせ 2007-01-16 1-2-1 ○ ししし 2003-12-14 1-2-1 〇 ししし 2007-12-15 ============== SQL ============== SQLは以下の通りです。 select テーブルA.グループコード,count(rtable.評価結果)、 from (select 店名コード,項目CD,評価結果,登録日 from テーブルC group by 店名コード,項目CD,評価結果,登録日 order by 店名コード,項目CD,評価結果,登録日) as rtable,テーブルA,テーブルB where テーブルA.グループコード = テーブルB.グループコード and テーブルB.店名コード = rtable.店名コード rtable.評価結果 = '○' and rtable.登録日 between '2000-01-01' and '2009-01-01' and テーブルA.グループコード ='AAAA' =============== 結果 =============== ■理想の結果(店名コードと評価結果が同じ場合は合計しない) グループコード 評価結果(合計) ---------------------------- AAAA 5 ■現在の結果(店名コードと評価結果が同じ場合も合計してしまう) グループ 評価結果(合計) ---------------------------- AAAA 7 何卒よろしくお願いいたします。
質問日時: 2009/05/27 00:10 質問者: tiyojisaka
解決済
2
0
-
SQL データ集計
はじめまして、現在Postgres8.3を利用して開発を行っています。 以下のテーブルがあります。 No グループ ------------------------------------- 1 AAAA 2 BBBB 3 CCCC ■テーブルB ID 項目CD 評価結果 グループ 登録日 ------------------------------------- A 1-1-1 ○ AAAA 2000-10-10 A 1-1-1 ○ AAAA 2007-12-10 B 1-1-1 × AAAA 2006-12-16 C 1-1-1 ○ AAAA 2009-04-16 A 1-2-1 ○ AAAA 2004-10-16 A 1-2-1 ○ AAAA 2007-01-16 B 1-2-1 ○ AAAA 2003-12-14 C 1-2-1 〇 AAAA 2007-12-15 評価結果は、○と×があり、項目CDごとに集計を行い、項目CDが同じ場合は、○がいつくあっても1とみなして計算するということをおこないたいです。 登録日を指定して、抽出したいのですが、 登録日を 条件に含めると、全部計算されてしまいます。 select count(評価結果) from (select ID,項目CD,評価結果 from テーブルB group by ID,項目CD,評価結果 order by ID,項目CD,評価結果) as rtable where rtable.評価結果 = '○' rtable.登録日 between '2000-01-01' and '2009-01-01' ■理想の結果 グループ 合計 -------------- AAAA 5 ■現在の結果 グループ 合計 -------------- AAAA 7 どうしても出来なくって、困っています。 よろしくお願いいたします!!
質問日時: 2009/05/26 17:27 質問者: tiyojisaka
解決済
4
0
-
SQL文 合計値を出力する
ID 項目CD 評価結果 ------------------------- A 1-1-1 ○ A 1-1-1 ○ B 1-1-1 × C 1-1-1 ○ A 1-2-1 ○ A 1-2-1 ○ B 1-2-1 ○ C 1-2-1 〇 上記のテーブルがあります 評価結果は、○と×があり、項目CDごとに集計を行い、項目CDが同じ場合は、○がいつくあっても1とみなして計算するということをおこないたいです 理想SELECT結果 ID 合計 -------------- A 2 (1-1-1で○が2つあるが、1つとして計算) B 1 C 2 SELECT ID,SUM(評価結果) FROM TABLE GROUP BY ID でIDと合計までは出せました 現在のSELECT結果 ID 合計 -------------- A 4 (すべての○の合計を出力) B 1 C 2 項目CDが同じ場合"○"を1つとして集計するにはどうすればいいのでしょか?
質問日時: 2009/05/25 14:08 質問者: tiyojisaka
ベストアンサー
2
0
-
アーカイブログ、ポイントインタイムリカバリについて
Postgresqlのポイントインタイムリカバリとアーカイブログについての質問です。 バックアップは夜間に 1.バックアップ開始宣言 select pg_start_backup('bkup01'); 2.tarでベースのバックアップ 3.バックアップ終了宣言 select pg_stop_backup(); を実施後、日中障害が発生した場合は、障害前の時点に復旧しようと考えています。 アーカイブログを$PGDATA/data/postgres.conf内で別パーティションに保存するように設定しています。 上記の方法でポイントインタイムリカバリ実装可能でしょうか? 現在、設定後しばらく動きを見ているのですがアーカイブログが保存されているディレクトリ内のファイルの更新が日に1回程度なので。アーカイブログの書き出しは1日1回程度なのでしょうか?変更可能なのでしたら教えていただけないでしょうか? 以上、よろしくお願いします。m(_ _)m
質問日時: 2009/05/23 03:34 質問者: usodahei8
ベストアンサー
1
0
-
PostgreSQLでの類義語検索
かけだしのプログラマーです。 PostgreSQLで全文検索や類義語検索を行います。 現在、Ludiaの使用を検討していますが、Ludiaには類義語検索機能はないと、 サイトに書いてありました。 また、「PostgreSQL、類義語」で検索してみたところ、dict_xsyn(拡張類義語辞書) というものがひっかかりましたが、情報が少なすぎてコレがいまいち何なのか分りません。 類義語検索を行うのに、何か効率の良い方法があるかご存知でしょうか? もしくは、原始的にselect文にORを組み合わせて発行するしかないのでしょうか? 御助言よろしくお願いします。 <条件> PostgreSQL 8.3 類義語検索 EUC-JP 全文検索機能,類義語検索機能
質問日時: 2009/05/22 21:45 質問者: iwa2134
解決済
1
0
-
複数の項目をまとめてキーに出来ますか?
一つのテーブルに smallint型のkey1,key2,key3を持つテーブルのデータを これを key1+key2+key3のinteger形式のkeyAとして 他のテーブルに登録したり呼び出したりしたいのですが 可能でしょうか? 例えば key1=123,key2=45,key3=67 というデータを keyA=1234567 というkeyで管理したいのです。 Cにおける構造体のunionの様な呼び出しがしたいのですが・・・
質問日時: 2009/05/19 19:23 質問者: homesweet
解決済
3
0
-
レコードを1件のみ取得した後、検索をやめる方法はあるのでしょうか?
PostgreSQLのデータベースでテーブルから、 "1件のレコードが見つかった時点で、他のレコードを検索するのをやめる" という事はSQLでできるのでしょうか? 【テーブル名 Fruit 】 | id | option | name | 1 2 りんご 2 1 みかん 3 1 メロン 4 1 バナナ 5 4 いちご 上記のようなテーブルから、optionが1のレコードを検索する時、 どのレコードでもいいので、1件見つけた時点で他にも該当のレコードがあるかという検索の処理をしない。 という事はできるのでしょうか? 出来るのであれば、膨大な数のレコードがある場合、検索の時間が減るのでは無いかと思ったのですが・・・ 現在は下記のSQLのように、OFFSETとLIMITを使用して1件のレコードを取得しています。 SELECT * FROM Fruit WHERE option=1 OFFSET 0 LIMIT 1 このやり方であっているのでしょうか? または他の仕方があるのでしょうか? 教えていただきたいです。 宜しくお願いします。
質問日時: 2009/05/18 17:07 質問者: xtamanegix
ベストアンサー
1
0
-
PostgreSQL データベースクラスタの格納先が変更できません
OSはCentOS5.2を使用しております。 データベースクラスタの格納先を変更したく PostgreSQLをrpmでインストールした後に #su postgers $vi ~/.bash_profile でPGDATAを編集後、環境変数へ反映。 $/usr/bin/initdb -D /usr/local/pgsql で初期化処理を実施後 /etc/rc.d/init.d/postgresql start と起動したところ、イニシャル処理も実施され デフォルトの/var/lib/pgsql/dataが作成されて しまいこちらの領域を使用して起動します。 どうすれば、ディレクトリを変更できるのでしょうか。 よろしくお願い致します。
質問日時: 2009/05/15 18:28 質問者: mlc56724
ベストアンサー
1
0
-
指定された趣味を持つメンバーがいるグループを抽出するSQL
グループテーブル、メンバーテーブル、趣味テーブルの3つのテーブルがあります。 あるメンバーはあるグループに属しており、趣味を1つ持っています。 以下がそのSQLです。 CREATE TABLE groups ( g_id int primary key ); CREATE TABLE members ( m_id int primary key , g_id int , h_id int ); CREATE TABLE hobbies ( h_id int primary key, h_name text ); INSERT INTO groups VALUES ( 1 ); INSERT INTO groups VALUES ( 2 ); INSERT INTO groups VALUES ( 3 ); INSERT INTO members VALUES ( 1, 1, 1); INSERT INTO members VALUES ( 2, 1, 3); INSERT INTO members VALUES ( 3, 1, 4); INSERT INTO members VALUES ( 4, 1, 4); INSERT INTO members VALUES ( 5, 2, 1); INSERT INTO members VALUES ( 6, 2, 2); INSERT INTO members VALUES ( 7, 2, 3); INSERT INTO members VALUES ( 8, 3, 2); INSERT INTO members VALUES ( 9, 3, 3); INSERT INTO members VALUES ( 10, 3, 4); INSERT INTO hobbies VALUES ( 1, 'sports' ); INSERT INTO hobbies VALUES ( 2, 'music' ); INSERT INTO hobbies VALUES ( 3, 'book' ); INSERT INTO hobbies VALUES ( 4, 'drive' ); 指定された趣味を持つメンバーがいるグループを抽出するにはどうすればいいでしょうか? 例えば、「読書が趣味なメンバーとドライブが趣味なメンバーがいるグループは?」「グループ1とグループ3」のような感じです。 一応自分で考えてみたのが、以下ですが、これだと趣味の指定が増減すると大きくSQLが変わってしまいます。 もっといいやり方はないでしょうか? 私はPostgreSQL8を使ってますが、汎用的なSQLであれば、そっちの方がいいです。 SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'drive' INTERSECT SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'book';
質問日時: 2009/05/11 16:35 質問者: tomato1200
解決済
3
0
-
備品管理のデータベースについて
社員への備品貸し出しの管理システムを構築しているのですが、 誰に何を貸し出しているかを把握するテーブルはどのように作成すればいいでしょうか? 貸し出しテーブルと備品テーブルみたいなのがあり、 備品テーブルは備品の個数だけレコードがあるわけではなくて、 1種類につき1レコード、どんな備品なのかを管理するだけのテーブルを考えています。 社員が1種類しか備品を借りないのであれば、 貸し出しテーブル : 社員番号, 備品番号 備品テーブル : 備品番号, 詳細 みたいにすればOKだと思いますが、複数借りた場合だと貸し出しテーブルが1レコードでは管理ができなくなります。 貸し出しテーブルには上記以外にもカラムを複数入れるので、 1レコードで社員番号から借りている備品を抽出したいのですが、 上手くやる方法はないでしょうか? (上記テーブルを変えたり、別のテーブルを作成するのはOKです。) よろしくご教示願います。
質問日時: 2009/05/07 18:53 質問者: noname#176600
ベストアンサー
2
0
-
SQLをレンタルサーバに接続するには…
明後日までに人にサイトを見せる必要(面接です;)が急遽できてしまったので 急いで「Ribbon Networ」のレンタルサーバを借りました。 ですが…いままでlocalhostでしか接続したことがないので接続方法がわかりません;w; 設定可能なPostgreSQLの ホスト・データベース名・ユーザ名・接続パスワード を教えてもらい直接JDBCで接続しようとすると 「サーバは閉じられています」とのこと レンタルサーバのサイトでは利用について ・PHP や Perl などの Postgres 用ライブラリなどを用いて操作を行ってください。 ・Ribbon Network 内のサーバからのみデータベースサーバへ接続できます と記載されていました。 (ちなみにPHP・Perlとも扱ったことないです) また、レンタルサーバーの利用可能なバージョンが8.3.1なのに対し、私が利用してるのは8.3.7です。 これも関係してるのでしょうか? 羅列してしまったので質問内容まとめ 1.レンタルサーバーへの一般的な接続方法 2.PHP・Perlを必ず使わないと接続できないか (できればJAVA経由で接続したいです) 3.バージョンは一致しないと無理か かなり曖昧な質問で申し訳ありませんが なかなか自分で調べても答えを導くことができませんでした どうかお力を貸してください>人<!
質問日時: 2009/05/04 22:07 質問者: skywhale
ベストアンサー
1
0
-
postgresのパスワードを変更する方法
WindowsにPostgreSQL8.3をインストールしたのですが、デフォルトユーザーpostgresのパスワードを変更する方法がわかりません。 SQLで行うのでしょうか?それとも何かツールがあるのでしょうか?
質問日時: 2009/05/01 15:58 質問者: ne5
ベストアンサー
3
0
-
インストール後のデータの移動は可能でしょうか?
PostgreSQL8.3を使っています。 インストールしているCドライブの空き容量が少ないので、PostgreSQLのディレクトリ全てをDドライブに持っていき、動作させたいのですが可能でしょうか。 データだけでもDドライブにして、通常どおり動作させたいです。 できればわずかな設定変更で済めば嬉しいです。
質問日時: 2009/04/30 04:58 質問者: ne5
ベストアンサー
1
0
-
serialの値をINSERT時に取得する方法
PostgreSQL8.3系を使っています。 PostgreSQLのserial型を使って、連番を意識せずINSERTして登録しているのですが、直前に登録した連番(serial)が知りたいことがありまして、 簡単に取得する方法がわかりません。 気になる点ですが書きこんだ後、他から書き込みがあった場合の直前は他のデータになると思うので、書き込んだ直後のserialフィールドのmax値はあてにならないと考えますが、詳しい方教えてください。 書きこんだ直後についでに何か取得できる(書きこんだときのserial値がわかる)方法はあるのでしょうか?
質問日時: 2009/04/30 04:14 質問者: ne5
ベストアンサー
2
0
-
sqlに記述できない文字
いつもお世話になっております。 WEB画面から入力された項目を対象にPostgresに検索しに行っているのですが、シングルクォート(')が入っていた場合、エラーになってしまいました。 JavaからSQLを生成し、Postgresに接続しているのですが、シングルクォートを検索させるにはどうするのが良いでしょうか。 またSQLに記述できない文字は、シングルクォートのほかに何かありますでしょうか。 よろしくお願いします。
質問日時: 2009/04/24 11:12 質問者: take_july
ベストアンサー
2
0
-
countの速度が行数に比例して遅くなってきました
タイトルのような現象が起こってしまっているのですが、対処方法はありますでしょうか? 行数が増えてもcountの速度が落ちないようにしたいのです。 CREATE INDEX などは設定してあります。 ご教示お願いいたします。
質問日時: 2009/04/21 22:13 質問者: shizer
ベストアンサー
1
0
-
複雑なcountについて
val | num ----------- 9984 | 1 1234 | 1 9876 | 1 4567 | 1 9984 | 1 1234 | 1 9984 | 1 以上のようなテーブルで SELECT COUNT(*) FROM table_name WHERE val = 9984 SELECT COUNT(*) FROM table_name WHERE val = 1234 SELECT COUNT(*) FROM table_name WHERE val = 9876 SELECT COUNT(*) FROM table_name WHERE val = 4567 のように4つ実行することなく1度に 9984 => 3 1234 => 2 9876 => 1 4567 => 1 という結果を得たいのですが方法はありますでしょうか? ご教示お願いいたします。
質問日時: 2009/04/16 21:37 質問者: shizer
ベストアンサー
1
0
-
重複するキーから一番古い年月日のデータのみ取得したい
下記の事を実現するSQL文がどうしても分からず困り果てています。。。。 ご回答の程お願い致します。 テストテーブルにはコード、枝番、年月日の3種類のデータがあります。 テストテーブルはコードと枝番を主キーとします。 1つのコードに対して、重複しない枝番が複数登録可能となっています。 取得するデータはコード、枝番、年月日の3種類のデータを取得し、同じコードの中で年月日が一番若いデータのみ取得したいです。 同じような質問で http://okwave.jp/qa4089797.html と言うURLの回答を参考に SELECT コード , 枝番 , 年月日 FROM テストテーブル where (コード , 年月日) in (SELECT コード , MIN(年月日) FROM テストテーブル GROUP BY コード ); というSQL文を考えたのですが、 コードは同じで枝番は違うが年月日が同じデータがあると 望んでいない結果にならず、困り果てています・・・・ ■テストテーブルのデータ コード │ 枝番 │ 年月日 ----------------------------- 1 │ 1 │ 2009-01-01 1 │ 2 │ 2009-01-03 2 │ 1 │ 2009-02-15 2 │ 2 │ 2009-02-10 2 │ 3 │ 2009-02-20 3 │ 1 │ 2009-03-15 3 │ 2 │ 2009-03-10 3 │ 3 │ 2009-03-05 3 │ 4 │ 2009-03-01 ↓↓↓ ■望んでいる取得結果 コード │ 枝番 │ 年月日 ----------------------------- 1 │ 1 │ 2009-01-01 2 │ 2 │ 2009-02-10 3 │ 4 │ 2009-03-01
質問日時: 2009/04/06 16:06 質問者: temjin0126
ベストアンサー
1
0
-
他のPCにデータをSJSIにして入れるには?
WindowsXP x64にPostgreSQL8.3.7を入れる予定ですが、 ODBCも必要になると思いますが、どこからダウンロードすることができますか? 他のPCに8.2.4が入っていて、データベースに文字コードがユニコードで保存しているのですが、これをSJISにして、最新の8.3.7のPCに入れることは可能でしょうか? pg_dump?で引数の方法など知りたいです。
質問日時: 2009/04/05 01:13 質問者: kounesi
ベストアンサー
1
0
-
version7,version8 の型の扱い
PostgreSQL の 7 から8 へマイグレーション作業をしている者です。 int型で not null制約のあるカラム「id」 の値から、''(空)であることを判定する時、 version7 では、 $sql = "select * from tbl_name where id <> ''"; のSQL文で動いていたようですが、 version8 では、 型の扱いが厳しくなった訳か、syntax error となります。 この場合version8 では、 $sql = "select * from tbl_name where id <> 0"; が、 ''(空)であることを判定するSQL文と考えてよいでしょうか? ご教授よろしくお願いします。
質問日時: 2009/03/17 17:52 質問者: gahosky
ベストアンサー
2
0
-
KeySQLの代替ソフトありませんか
現在 Oracle → PostgreSQL に移行しようと考えています。 Oracleからレコード取得操作を主に KeySQL というソフトを使って いますが、KeySQL は PostgreSQL では動作しないため、 PostgreSQL で使える「KeySQLライク」のものを探しています。 どなたか有用なソフトをご紹介いただけませんか。 ※主にKeySQLを使用している目的は、SQL文法をあまり知らなくても レコードの取得などが行えるためですので、それを満たしたツール があるといいのですが。
質問日時: 2009/03/10 14:05 質問者: tomoru77
解決済
5
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【PostgreSQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定ができ...
-
SQLでUPSERTを一度に複数行やる方法
-
postgresql についてです
-
SQLにて指定日付より前、かつ最新の...
-
PostgreSQLについて教えてください ...
-
PostgreSqlでFunctionの作成について
-
自治会総会の成立要件について
-
エクセルで縦のカラムデータをカン...
-
新規作成したPostgresqlデータベー...
-
PostgressからMySQL(MariaDB)へ構...
-
postgreSQLのアクセス制御について
-
shellからpostgresqlへの変数の引き...
-
SQLについてです
-
Windows10でQuickTimeがインストー...
-
エクセルVBAでUWSCを使う
-
postgresqlでのトランザクションに...
-
postgresqlのtableのカラムの型をbi...
-
php、postgresqlを使ってwebアプリ...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AND id...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresql についてです
-
自治会総会の成立要件について
-
postgreSQLのint型は桁数指定ができ...
-
エクセルで縦のカラムデータをカン...
-
SQLにて指定日付より前、かつ最新の...
-
PostgreSqlでFunctionの作成について
-
SQLでUPSERTを一度に複数行やる方法
-
列が存在しないと言われる
-
PostgreSQLについて教えてください ...
-
plgファイルの開き方
-
select文の書き方「半角カナ+英+...
-
postgresqlでのトランザクションに...
-
PostgresSQLの環境設定について
-
select文の書き方で分からないとこ...
-
新規作成したPostgresqlデータベー...
-
Windows10がインストールできません...
-
Windows10でQuickTimeがインストー...
-
Postgreのupdateコマンドでエラー
-
PostgreSQL14.6のSSL対応について
-
PostgressからMySQL(MariaDB)へ構...
おすすめ情報