回答数
気になる
-
order byで並び変えし最大値の項目の抽出方法ついて
すみません。 order byで並び変えし最大値の項目のみ一意で抽出したいのですが 、 SELECT * from ta order by no,date1,date2; no | date1 | date2 ----+-------+------- 11 | 2008 | 0501 11 | 2008 | 0502 11 | 2008 | 0502 11 | 2008 | 0503 12 | 2008 | 0501 12 | 2008 | 0502 12 | 2008 | 0503 13 | 2008 | 0501 13 | 2008 | 0502 13 | 2008 | 0503 14 | 2008 | 0501 とあった場合、 no,date1,date2のorder by順番で並び変えし 11 | 2008 | 0503 12 | 2008 | 0503 13 | 2008 | 0503 14 | 2008 | 0501 とno項目に対し一つずつだけ出力したい場合どのようにしたらよいのでしょうか? LIMITとoffsetだと1項目分しか出力されず困っております。 SELECT * from ta where no in (select no from ta group by no limit 1 offset 0) order by no,date1 desc,date2 desc limit 1; 宜しくお願い致します。
質問日時: 2008/05/13 10:51 質問者: help_oshiete
ベストアンサー
1
0
-
ラージオブジェクトについて
PDFファイルのデータベースをPostgreSQLで構築しています。 データベースの項目には「タイトル」「著者名」「注釈」などとともにラージオブジェクトとしてPDFファイルそのものをデータベースに取り込んでいます。PDFファイルのファイルサイズは10KB~20MB程度です。 最近、書店でPostgreSQLの本を見てもラージオブジェクトに関する解説を書いたものがほとんどなく、ひょっとすると将来的にはラージオブジェクトは廃止になるのではと危惧しています。 よく考えてみれば、データベースを初めに構築するときに、PDFファイルをファイルシステムのディレクトリ内に保存して、そのファイル名をデータベースで管理すれば良かったと今頃後悔しているところです。 ラージオブジェクトを使って、バイナリファイル(ここではPDF)を保管するメリットがあるのか? ラージオブジェクトはPostgreSQLで今後も対応されるのか? など、ご意見、感想などありましたらご教示ください。 ラージオブジェクトにメリットが無いなら、近い将来、あまりデータベースが巨大にならないうちに、PDFファイルを取り出すスクリプトなど作らなければと考えております。 よろしくお願いいたします。
質問日時: 2008/05/03 23:45 質問者: wild_sheep
ベストアンサー
1
0
-
解決済
3
0
-
max_fsm_pagesについて
VACUUMにてmax_fsm_pagesが不足している旨のメッセージが出ましたので、 不要領域を無くそうと vacuumdb -f を実施しましたが、 その後も同様のメッセージが表示されます。 max_fsm_pagesが不足している旨のメッセージが出た場合は、 一旦max_fsm_pagesの値を変更してVACUUM FULLを実施しなければ意味がないのでしょうか? ちなみに、2回目のVACUUM FULL時に表示されたメッセージが以下になります。 ----------------------------------------------------------------- hoge=# VACUUM FULL; NOTICE: number of page slots needed (31360) exceeds max_fsm_pages (20000) HINT: Consider increasing the configuration parameter "max_fsm_pages" to a value over 31360. VACUUM -----------------------------------------------------------------
質問日時: 2008/04/24 14:44 質問者: minarai_55
ベストアンサー
2
0
-
PL/SQLとPL/pgSQLの違い
こんにちは。 現在の環境がOracle8iで、次のシステムがPostgreSQLで構築されることになりました。 今後に向けてPL/SQLを勉強しようと思ったのですが、PostgreSQLにはPL/pgSQLというストアドプロシージャが有ると言うことを知りました。 そこで質問なのですが、PL/SQLとPL/pgSQLは何か大きな違いは有るのでしょうか? PL/SQLの勉強をすれば、PL/pgSQLも出来るようになるのかを教えていただけますでしょうか。
質問日時: 2008/04/23 23:13 質問者: Koko-Doko
解決済
1
1
-
constraint と index の違い
ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, zipcode); CREATE UNIQUE INDEX dist_id_zipcode_key ON distributors (dist_id, zipcode); この二つには違いがあるのでしょうか。
質問日時: 2008/04/18 20:45 質問者: t-okura
ベストアンサー
5
0
-
PL/PGSQL
pl/pgsql にて。 select avg(price) into wk_price from uriage_tbl where ymdtm <= current_timestamp and ymdtm >= current_timestamp + '-4 hour'; と4時間前から直近まで価格の平均を求める構文があったとして、この-4 を、希望する任意の数字で変動したいと思っています。 -4 部分を変数にするには、どのようにすればよいか、お分かりの方がいらっしゃればお教え願います。 日付型の計算だと、上記のようにシングルクオーテーション内に引数を持たせるので、その中で変数を持たせるところでつまづいてます。
質問日時: 2008/04/13 17:16 質問者: TAI_0824
解決済
2
0
-
文字間の空白の削除を教えてください。
全角文字の文字間にある空白を削除したいです。 山 田 太 郎 → 山田太郎 下記のとおり置き換えようとしてもダメでした。 select replace('山 田 太 郎',' ','') from user_master; 左空白削除(ltrim() 関数)、右空白削除(rtrim() 関数)、左右空白削除(trim() 関数)などは、ありますが。。。 文字間の空白削除は、どうすれば良いのですか?
質問日時: 2008/04/07 14:34 質問者: lips7
解決済
1
0
-
賢いSQL文がわからない
お世話になります。 メインテーブルAと詳細テーブルBがあります。 テーブルA(ID・名前) テーブルB(ID・テーブルAのID・区分・内容) テーブルA:テーブルBは、1:Nの関係です。 またテーブルBがないものもあります。 名前あるいは名前と内容で検索をしたいのですが、 どのようにかけばいいのでしょうか? テーブルAの形で結果がほしいのですが。 よろしくお願いします。
質問日時: 2008/04/01 18:07 質問者: angelinaane
ベストアンサー
2
0
-
VARCHAR型の数値比較
教えてください。 テーブルにVARCHAR型のデータがあるのですが、 その内容は、数値や文字です。 2.5 20 0未満 などなど。 仮に4以下のデータを抽出する場合、 どのようにかけば「2.5」のデータがHITするのでしょうか? この場合、「0未満」など文字のあるデータは検索対象から外れてもかまいません。 よろしくお願いします。
質問日時: 2008/03/28 15:11 質問者: angelinaane
ベストアンサー
2
0
-
pg_restoreでエラー
こんにちは。 PostgreSQL8.1.10を使っています。 pg_dumpでバックアップしたデータをpg_restoreでリストアするときに、エラーと警告が出てしまいます。 $ pg_dump -F c mydb > db.dump $ dropdb mydb $ pg_restore -C -d postgres db.dump pg_restore: [アーカイバ(db)] TOC処理中にエラーがありました: pg_restore: [アーカイバ(db)] TOCエントリ1514; 0 0 COMMENT SCHEMA public postgresのエラーです pg_restore: [アーカイバ(db)] could not execute query: ERROR: スキーマpublicの所有者でなければなりません Command was: COMMENT ON SCHEMA public IS 'Standard public schema'; pg_restore: WARNING: 権限を取り上げられませんでした pg_restore: WARNING: 権限を取り上げられませんでした pg_restore: WARNING: 権限は付与されませんでした pg_restore: WARNING: 権限は付与されませんでした 警告: リストアにてエラーを無視しました: 1 結果を確認した限りではリストアはされているようなのですが気になります。 このエラーはどういった理由で発生しているのでしょうか。 エラーを出さなくする方法はあるのでしょうか。 無視していいものならそれでも構わないのですが、理由は知っておきたいです。
質問日時: 2008/03/27 17:32 質問者: titokani
解決済
1
0
-
TIMESTAMPTZの値について
こんにちは。 PostgreSQL+PerlでCGIを書いています。 テーブルのtimezonetz型の値の最大値を取り出して加工したいのですが、 うまくいかず悩んでおります。 単に最大値を取り出すだけなら、 SELECT max(lastdate) FROM table; でできました。しかし、この値を $sth->execute(); $last=$sth->fetchrow; として取り出しても、文字列となってしまいます。 perl側で加工するのは、フォーマットが環境によって違ったりする心配がありましたので、サーバー側でできないものかと思い、 SELECT EXTRACT(EPOS FROM TIMESTAMPTZ lastdate) FROM table; としてみましたが、 「"max"またはその近辺で構文エラー」とメッセージが出てしまいます。 こういった場合、いったいどのように書けばよいのでしょうか? PostgreSQLのバージョンの確認方法がわからず、バージョンは不明なのですが、つい先日インストールしてもらったばかりなので、そう古いものではないと思います。 OSはunix(Solaris)です。よろしくお願いします。
質問日時: 2008/03/26 10:11 質問者: titokani
ベストアンサー
1
0
-
LASTVAL()の使い方
こんにちは。 現在、バッチで伝票を登録するプログラムを組んでいます。 実施したい内容は、伝票番号を採番し、伝票テーブルと伝票明細テーブルにデータを書き込むと言う物です。 具体的には、以下のテーブルです。 1.TRN_DENPYO DENPYO_NO DENPYO_HIDUKE 2.TRN_DENPYO_MEISAI DENPYO_NO DENPYO_MAISAI_NO DENPYO_SYOHINCD ※TRN_DENPYOのDENPYO_NOはserialです。 そこで、TRN_DENPYO にレコードを追加した後、自動的にカウントアップされるTRN_DENPYOのDENPYO_NOを取得するために LASTVAL()を使用したいのですが、うまく行きません。 以下、実際に記述しているSQL文です。 $sql = 'INSERT INTO "TRN_DENPYO"("DENPYO_HIDUKE")VALUES(' . $denpyo_hiduke . ')'; $db->query($sql); $sql = 'SELECT LASTVAL()'; $result =& $db->query($sql); while($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) { $denpyo_no = $row['LASTVAL()']; } echo $denpyo_no; この時点で、$denpyo_no の値が表示されると思っているのですが、表示されません。 どなたか教えて頂けませんでしょうか? ちなみに環境は、PostgerSQL8.2 php5を使用しています。
質問日時: 2008/03/25 17:44 質問者: oops1967
ベストアンサー
1
0
-
SELECT文での絞り込み
こんにちは、SELECT文での絞り込みでうまく行かないので質問させてください。 現在、以下の2つのテーブルがあります。 これらのテーブルからメールアドレスを取得したいと考えています。 1.MST_USER <KEY--> USER_ID MAILADDRESS -------+----------------- 1|hoge1@example.com 2|hoge2@example.com 3|hoge3@example.com 2.MST_USER_SETTING <KEY------------> USER_ID SELECT_ID OPTION_ID -------+---------+--------- 1|BUNRUI |KYOUSHI // 教師 1|GAKUNEN |2 // 2年生 2|BUNRUI |HOGOSYA // 保護者 2|GAKUNEN |2 // 2年生 3|BUNRUI |GAKUSEI // 学生 3|GAKUNEN |2 // 2年生 やりたい事は、 MST_USER_SETTINNGから2年生の教師のUSER_IDを取得して MST_USERのMAILADDRESSを取得したいという事です。 一応、以下のようにやってみたのですが、 SELECT "MST_USER"."MAILADDRESS" FROM "MST_USER" LEFT JOIN "MST_USER_SETTING" ON "MST_USER_SETTING"."USER_ID" = "MST_USER"."USER_ID" WHERE ("MST_USER_SETTING"."SELECT_ID" = "BUNRUI" AND "MST_USER_SETTING"."OPTION_ID" = "KYOUSHI") AND ("MST_USER_SETTING"."SELECT_ID" = "GAKUNEN" AND "MST_USER_SETTING"."OPTION_ID" = "2") ) WHERE句の指定が悪いせいか、正しく取得できませんでした。 以上、よろしくお願い致します。
質問日時: 2008/03/25 10:25 質問者: oops1967
ベストアンサー
4
0
-
left join が3つ以上のとき
例えば select * from ((t1 left join t2 on t1.a=t2.a)left join t3 on t1.a=t3.a) where b.t1='y'; という風にカッコがついて記入しにくくなります。 4つの場合はさらに深刻です。 簡単な記法はないのでしょうか?
質問日時: 2008/03/16 06:13 質問者: reiman
ベストアンサー
1
0
-
重複する項目を抽出したい
テーブルに格納された項目A及びBが共に重複する項目のみ 抽出したいのですがSQL文が上手く書けません。 初歩的なことで大変申し訳ないのですが、有識者様ご教授願います。 以下の例ですとNo1及び2を抽出したいのですが上手く 抽出できません。 No 項目A 項目B -----+--------+------------- 1 A1111 B1111 2 A1111 B1111 3 A1111 B2222 4 A2222 B1111
質問日時: 2008/03/16 01:32 質問者: Ishiko145
解決済
1
0
-
あるIDごとの最高値のレコード抽出について
下記のようなテーブルがあるとします。 それぞれの人の最高得点であるレコードを抽出したいのですが可能でしょうか。 テーブル:result no id point date -------------------- 1 A 60 ... 2 A 70 3 B 50 4 B 90 期待出力 no id point date ------------------- 2 A 70 ... 4 B 90 自分でも色々考えたつもりですが、例えば select max(point) from result group by id; とすると 70,90 という値は抽出されますが、該当レコードの全カラムを出力させたいです。 もし同じidで同じpointのレコードがあった場合は、dateの新しいほうを優先したいです。 id,point,dateがまったく同じレコードは存在しないと仮定します。 この他にもdistinct等も考えましたが、指定したカラムが重複した場合どのレコードが選択されるかは 不定のようですので使えそうにありません。 そもそもSQLだけでこのような出力が可能かどうかもわかりません…。 テーブルの設計が悪いというのもあるのでしょうか。 どなたかご助言くだされば幸いです。
質問日時: 2008/03/16 00:39 質問者: takemaru123
解決済
3
0
-
WindowsでのPostgreSQL起動オプション指定方法について
WindowsにPostgresSQLをインストールしているのですが、サービス起動オプションの指定の仕方がわかりません。 -iオプションを付けて起動すれば、TCP/IP接続できるようになると知って、やってみようとしていて、試してみている次第です。 サービス起動のショートカットに、以下のようなショートカットがあるのですが、 C:\WINDOWS\system32\net.exe start pgsql-8.3 これに単純に後ろに-iを付けてみても駄目なようです。 どなたか方法をご教示ください。 環境は以下の通りです。 WindowsXP HomeEdition Version2002 PostgreSQL 8.3
質問日時: 2008/03/15 21:09 質問者: ironpeace
ベストアンサー
1
0
-
joinの場合のテーブル名の別名の使用方法
select * from table1 a,table2 b where a.field1=b.field1; とできますが select * from table1 as a left join table2 as b on a.field1=b.field1; とできません。 joinの場合にテーブル名の別名を使う方法を教えてください
質問日時: 2008/03/15 09:34 質問者: reiman
ベストアンサー
1
0
-
1週間後の日付を求めたい
テーブルにchar(6)でyymmdd形式の日付を格納する領域を作成しております。この格納された日付から1週間以上過ぎたもののみ抽出したいのですが、sqlの構文を上手く作成できず大変こまっております。 有識者様大変お手数ですがご教授を頂けないでしょうか?
質問日時: 2008/03/15 03:55 質問者: Ishiko145
ベストアンサー
1
0
-
Windows上のPostgreSQLの完全削除→再インストール
いつも参考にしております。ありがとうございます。 さて、WindowsXPにPostgreSQL8.1をインストールしたのですが、起動させ、パスワードを入力すると画面が消えてしまう現象が起きています。 このため、再度入れなおそうとするのですが、「データベースクラスタの初期化」画面で、「データディレクトリが存在します」といったメッセージ(英語)が現れ、パスワードを設定せずに(クラスタを初期化せずに)次に進むようになってしまいます。(クラスタ初期化せずにインストールを完了させても、上記エラーが再発します) 最初のインストールで、そこのパスワードをタイプミスした可能性もありますので、「データベースクラスタの初期化画面」で再度パスワードを設定したいのですが、どのようにしたらよろしいでしょうか? ちなみに、再インストール前には、 PostgreSQLの削除 ユーザーアカウントPostgreの削除 Document&settingsの下のPostgresフォルダ削除 を行っています。 基本的な質問で、恐縮ですが、どうぞよろしくお願いいたします。
質問日時: 2008/02/28 16:40 質問者: sinmai_help
ベストアンサー
1
0
-
psqlでFATALエラー
PostgreSQL8.0.8の環境です。知り合いから頼まれての作業なのですが、2~3日前からPHPコネクションエラーが発生し、SSHからpostgres権限で該当DBにログインしようとしたところ、 psql: FATAL: conversion between LATIN1 and EUC_JP is not supported と表示され、PSQLログインが出来ません。PgAdminやCSEでも同じメッセージです。 1.この状態から何とかログインできる方法はあるのか? 2.バックアップが無いようなので、このDBからテーブルやフィールド項目をGETする方法はあるのか?最悪、これまでのデータを破棄して、新しくDBを作成し、ガラだけでも作りたい。pg_dump をやろうとしても、同じFATALエラーが出ます。 3.何が原因でこれが起きたのか?変な文字が入り込んだ? 経験された方、わかる方がいらっしゃればと思います。
質問日時: 2008/02/23 23:08 質問者: TAI_0824
ベストアンサー
3
0
-
VistaHomePremiumにPostgreSQL8.3.0
をインストールしようとしたのですが インストールの最後のほうで 「initdbの実行に失敗しました」 というエラーが出ました。 そのときのinitdb.logには このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベント ログを参照してください。 と書いてありました。 この状況をどのように解決したらいいでしょうか? PostreSQL3.0ではなくてPostgreSQL8.3.0でしたので再質問しました。
質問日時: 2008/02/23 14:37 質問者: reiman
ベストアンサー
2
0
-
意味は同じはずなのに結果が違います。
SELECT * FROM テーブルA LEFT OUTER JOIN ( SELECT * FROM テーブルB WHERE テーブルB.列X IS NOT NULL) as テーブルB ON テーブルA.列A = テーブルB.列A SELECT * FROM テーブルA LEFT OUTER JOIN テーブルB ON テーブルA.列A = テーブルB.列A WHERE テーブルB.列X IS NOT NULL 上のSQLも下の同じ事をしてると思うのですが 上では検索結果が10件出た場合 下では0件になってしまいます。 SQL自体シンプルで間違っていないと思うのですがなぜでしょうか?
質問日時: 2008/02/22 20:02 質問者: noname#59895
解決済
2
0
-
速度差の理由を教えてください。
データベースの構造とインデックス、検索クエリー 全て同じ条件でテストサーバと実際のサーバで 検索を行っているのですが以下のような結果がでます。 なぜ以下の様に10倍まで差が生まれるのかを 教えていただければと思っております。 違う箇所としては、サーバのスペックですが 実際のサーバのCPU:Xeon 3.2GHz メモリ:2GB テストサーバのCPU:Pentium4 3.2GHz メモリ:2GB となります。 //テストサーバでの結果 Limit (cost=99427.05..99427.25 rows=4 width=112) (actual time=4022.29..4022.31 rows=4 loops=1) -> Unique (cost=99427.05..99438.37 rows=226 width=112) (actual time=4022.29..4022.30 rows=5 loops=1) -> Sort (cost=99427.05..99432.71 rows=2265 width=112) (actual time=4022.29..4022.29 rows=6 loops=1) Sort Key: s.saorderid, s.saserialid, o.odlastupdate -> Merge Join (cost=96997.70..99300.85 rows=2265 width=112) (actual time=3363.93..4022.11 rows=40 loops=1) Merge Cond: ("outer".odid = "inner".saorderid) -> Sort (cost=8054.50..8059.58 rows=2033 width=68) (actual time=13.52..13.55 rows=38 loops=1) Sort Key: o.odid -> Index Scan using order1_odctmid_index on order1 o (cost=0.00..7942.81 rows=2033 width=68) (actual time=13.13..13.47 rows=38 loops=1) Index Cond: (odctmid = 3403::bigint) -> Sort (cost=88943.20..90075.54 rows=452935 width=44) (actual time=3344.05..3688.13 rows=452002 loops=1) Sort Key: s.saorderid -> Seq Scan on sale s (cost=0.00..12792.35 rows=452935 width=44) (actual time=0.02..756.03 rows=452935 loops=1) Total runtime: 4050.02 msec //実際の本番サーバでの結果 Limit (cost=73933.37..73933.39 rows=1 width=128) (actual time=43102.58..43102.59 rows=4 loops=1) -> Unique (cost=73933.37..73933.39 rows=1 width=128) (actual time=43102.58..43102.59 rows=5 loops=1) -> Sort (cost=73933.37..73933.38 rows=5 width=128) (actual time=43102.57..43102.58 rows=6 loops=1) Sort Key: s.saorderid, s.saserialid, o.odlastupdate -> Nested Loop (cost=0.00..73933.32 rows=5 width=128) (actual time=998.20..43102.38 rows=40 loops=1) Join Filter: ("outer".odid = "inner".saorderid) -> Index Scan using order1_odctmid_index on order1 o (cost=0.00..18.12 rows=4 width=68) (actual time=6.01..6.99 rows=38 loops=1) Index Cond: (odctmid = 3403::bigint) -> Seq Scan on sale s (cost=0.00..12797.54 rows=448254 width=60) (actual time=0.01..756.51 rows=455437 loops=38) Total runtime: 43102.69 msec もしクエリー文もあった方がよければ お知らせ下さい。 すみませんが、どなたか教えて頂ければ と思います。よろしくお願い致します。
質問日時: 2008/02/18 13:45 質問者: unhork
ベストアンサー
3
0
-
関数を作成したい
PgSQLで関数を作成したいのですが、記述方法がわかりません。 結果がbool trueならint 1 結果がbool falseならint 0 を返すようなものを作りたいのですが、どのように記述すれば良いのでしょうか。 CREATE FUNCTION BOOL2INT(boolean) RETURNS integer このあとの記述が複雑でわかりません
質問日時: 2008/02/14 10:45 質問者: Rasyuki
ベストアンサー
1
0
-
powergres(postgres)にalter文を使うとデータが消えることありますか?
powergresで開発していて、困った点が出たので質問致します。 質問内容 powergresでalter文でカラムの追加・削除等を行うと、 追加したカラムに紐づくテーブルのデータが消えてしまったりすることはあるのか? (alter文でカラムを削除した時のデータ以外のデータ) です。 なぜこんな質問をしたかというと 現在webツールからリクエストを送るとカラムの追加・削除ができるという 処理を作成しようとしています。 環境は ・Java1.5 ・powergres5.0 ・Apache + tomcat です 個人的な見解では、データ削除・テーブルごと削除の命令を出さない限り データは消えることなんてないと思っているのですが・・・・ 私の能力ではお客さんに論理的に説明したいのですが、 まだ論理的に説明できない状態です。 ・データが消える・消えない。 ・その詳細な理由がほしいです。 大変申し訳ございませんが、よろしくお願い致します。
質問日時: 2008/02/08 16:30 質問者: shoboiSE
ベストアンサー
1
0
-
PostgresSQLの環境設定についてご教示願います
こんばんわ。 現在、C言語でPostgresSQL8.3を使用しようとしています。 CコンパイラはBorland C++5.5を利用しています。 ※OSはWindowsXP-Pro/SP2です Cソースは、単純にデータベースに接続、SELECT処理、切断を行なう だけのものですが、コンパイル時に以下のリンクエラーが表示されます。 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test01.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error:外部シンボル'_PQsetdbLogin'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQstatus'が未解決(D:\C\TEST01.OBJ が参照) Error:外部シンボル'_PQexec'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQresultStatus'が未解決(D:\TEST01.OBJ が参 照) Error:外部シンボル'_PQerrorMessage'が未解決(C:\TEST01.OBJ が参 照) Error:外部シンボル'_PQgetvalue'が未解決(C:\TEST01.OBJ が参照) Error:外部シンボル'_PQclear'が未解決(C:\TEST01.OBJ が参照) PostgresSQLのインストール後に行なった設定としては、 コンパイラ側のbcc32.cfg内に、 -I"PostgresSQLインストールDir\include" -L"PostgresSQLインストールDir\lib" を追加しただけです。 もしこれ以外に必要な設定がありましたらご教示頂けますよう お願い致します。
質問日時: 2008/02/06 20:19 質問者: ll_VOXY_ll
解決済
1
0
-
psqlコマンド接続によるパスワードについて
psqlコマンドでDBへの接続を行っております。 /usr/local/pgsql/bin/psql -U postgres -h xxx.xxx.xxx.xxx testdb 上記コマンドをコマンドラインから実行するとパスワードが聞かれます。 パスワード設定をmd5にしているためですが、 その設定を変更せずコマンドラインでパスワードを渡すなどしてパスワードの入力を促す処理をスルーしたいのですが全然出来ません。 どのなたかご存知の方、いらっしゃいましたらご教示の程お願い致します。
質問日時: 2008/02/04 18:43 質問者: 653
ベストアンサー
4
0
-
Mysql用のプログラムをPostgresql用に変えたい
現在php+PostgreSQLでのアプリケーション制作を勉強中です。 で、参考書にあるMysql用に書かれたプログラムを参考に、PostgreSQL用に書き換える、といった勉強方法をとっているのですが、どうしても直せない箇所があるので、どなたお力添えいただけませんでしょうか? Mysql用サンプル <?php // =========================================== // 設定 // =========================================== // サーバ/データベース/ユーザ/パスワード $sv = "localhost"; $dbname = "xx"; $user = "xxxx"; $pass = "xxxx"; // 表示文字コード define("ENCDISP", "EUC-JP"); // =========================================== // パラメータの取得 // =========================================== $act = (isset($_REQUEST["act"])) ? $_REQUEST["act"] : ""; // ================================================= // 処理開始 // ================================================= ?> <?php conndb(); ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-JP"> <title>アンケート</title> </head> <body> <?php // -- ページ内容の表示 switch ($act) { case "a": // 回答一覧表示 gamen_iti(); break; default: // 質問表示 gamen_q(); } ?> </body> </html> <?php closedb(); ?> <?php // ================================================= // ----- アンケート質問画面 // ================================================= function gamen_q() { global $conn; $sql = "SELECT * FROM an ORDER BY id desc"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); if (mysql_num_rows($res) <= 0) { return; } $row = mysql_fetch_array($res, MYSQL_BOTH); ?> ・・・ 上記の 「if (mysql_num_rows($res) <= 0) { return; } $row = mysql_fetch_array($res, MYSQL_BOTH);」の部分です。 これを単純に↓に変えてみたもののもちろんエラーとなり、 「if (pg_num_rows($res) <= 0) { return; } $row = pgsql_fetch_array($res, PG_BOTH);」 以後、試行錯誤しているのですが、どうにもこうにも打開できません。 どなたか、ぜひとも教えていただければ大変たすかります。 よろしくお願いいたします。 プログラムをスペースの都合上、一部抜粋のような形になっておりますが、もっと続きをみてみないとどうにもならない。。ということであれば、ご一報いただければと存じます。
質問日時: 2008/02/04 16:55 質問者: maimaikabu
解決済
1
0
-
UNIONを使って2つのテーブルの値を算出
仮に以下2つのテーブルがあったとします。 (両方とも、JOINなどで結合されたテーブルです) tableA |id|nedan|jitubai| |01|1000|900| |02|1500|1000| |03|2300|2000| tableB |id|nedan|jitubai| |01|1500|1300| |02|1500|1200| |03|2300|2200| この2つをUNIONALLで結合すると以下のようになると思うのですが、 |id|nedan|jitubai| |01|1000|900| |02|1500|1000| |03|2300|2000| |01|1500|1300| |02|1500|1200| |03|2300|2200| これを何とかして、idを軸にnedanカラム、jitubaiカラムの値を足して出したいのです。以下の感じです。 |id|nedan|jitubai| |01|2500|2200| |02|3000|2300| |03|4600|4200| どうすれば良いのでしょうか……。 何か良い知恵をお借りできれば、と思っています。 宜しくお願い致します。
質問日時: 2008/01/31 17:03 質問者: ken_716
解決済
5
0
-
SQL文の日本語の箇所で文字化け
環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 bool型のデータを yの場合は「○」 nの場合は「×」 で表示するために以下のようにしました。 --------------------------- $sql_limit2 = "SELECT m_lecturehistory.lecturecode, CASE WHEN m_lecturehistory.syukketu='y' then '○' else '×' end as syu FROM m_lecturehistory;"; $sql_limit = mb_convert_encoding($sql_limit2,"EUC-JP","eucJP-win"); $rs_limit = pg_query($d_base,$sql_limit) or die("quary faild sql_limit"); --------------------------- ところが「○」「×」が表示されず 「??」になってしまいます。 文字コードは、 ポスグレとソースは「EUC-JP」 表示は「UTF-8」です。 ご教示して頂けたら幸いです。
質問日時: 2008/01/29 15:13 質問者: wee
ベストアンサー
1
0
-
単位時間ごとのレコードのカウント
time ---------------------------- 2006-12-01 00:00:00.323861 2006-12-01 00:00:00.710523 2006-12-01 00:00:00.963864 2006-12-01 00:00:01.45068 2006-12-01 00:00:01.512551 2006-12-01 00:00:02.17493 2006-12-01 00:00:02.731608 2006-12-01 00:00:02.873651 2006-12-01 00:00:03.398863 2006-12-01 00:00:03.438085 2006-12-01 00:00:03.833481 このようなレコードが格納されているテーブルに対して、例えば1秒ごとにレコードを集計してその集計時間と集計数を表示する といったことをどのようなSELECT文を作れば良いのでしょうか? SELECT COUNT (time) FROM table1 where ~ と書いて条件文を一秒ごとに設定した文を何度も繰り返し実行してみたのですが、処理を完了するのにかなり長い時間を要したのでこの方法は断念しました。 短時間でこの処理が行えるような文があったら教えてください。 お願いします。
質問日時: 2008/01/29 09:39 質問者: atobex2000
ベストアンサー
1
0
-
Windows版 pg_dumpの結果をログ取得
お世話になっております。 Windows版のPostgreSQL8.1を使用しています。 Windowsのバッチファイルで毎週自動実行で pg_dumpによるバックアップを取得しようと思っています。 バックアップは正常に取得できるのですが、 どうしてもログファイルが出力できません。 手動でバッチを動かすと、プロンプトには表示が出ます。 『pg_dump: テーブル×××の内容をダンプしています』 のように。それをどうやったらファイルに残せるかを知りたいです。 実行しているコマンドは、 pg_dump.exe -f "DBバックアップファイル" -i -v -h ホスト名 -p ポート -U "ユーザ名" -F c "DB名">>"ログファイル名" としています。 以上です。宜しくおねがいします。
質問日時: 2008/01/26 17:00 質問者: mogmicky
ベストアンサー
1
0
-
selectの速度について
現在2つのサーバにて全く同じselect文で 速度検証を行っております。 仮にAサーバ(以降A) Bサーバ(以降B) とします。 Aのスペックは CPU:Intel(R) Xeon(TM) CPU 3.20GHz メモリ:2GB Bのスペックは CPU:Intel(R) Pentium(R) 4 CPU 2.80GHz メモリ:2GB select文は以下の様な形です select * from t1,t2 where t1id=t2id~ 検索データ量 t1,t2共に40万件ほど ちなみにA側においては既に稼動しており 軽めの何らかのアクセスは常にある状態です。 上記の条件の元select文を動かした場合 Aについては5分以上かかる状態 Bについては5秒ほどで検索できます。 ココまで差がでてしまうのは何が原因と 考えられますでしょうか? 追記 A側で検索を基本(テーブル結合等)を変更せずに 条件だけを変更した場合数秒で出るようになります。 情報として足りない事がありましたら すみませんが、ご指摘願います。 どなたかヒント(気づき)でも構いませんので お教えお願い致します。
質問日時: 2008/01/24 13:40 質問者: unhork
ベストアンサー
1
0
-
フィールドの入れ替えはできますか?
PostgreSQL 8.1.4を使用しています。 仕様の変更によりテーブルへフィールドの追加を行なったのですが、このフィールドの位置を変更する事はできるのでしょうか。 DDL文を整えて作った空のテーブルへデータをリストアしようとしましたがうまくできませんでした。 よろしくお願いします。
質問日時: 2008/01/24 13:17 質問者: hitya
ベストアンサー
2
0
-
PostgreSQL serial型の質問
PostgreSQLで、自動採番(serial)について質問です。MAX_VALUEを超えた場合、MIN_VALUE(1)という記載がありますが、対象テーブル上に1が存在した場合は、どうなってしまうのでしょうか? 2が空いてた場合、2が使用されるのでしょうか? 4バイト(約21億なので、あまり問題がないかもしれませんが、)ユーザに、その質問を投げかけられ、困っております。
質問日時: 2008/01/22 02:41 質問者: kabukimomo
解決済
3
0
-
Linux上のpostgreSQLデータをWindowsでみたい
サーバA(OS:Linux Fedora Core 4、データベース:PostgreSQL 8.0 で運用しているシステムがあり、毎日そのデータを下記のdumpコマンドで PostgreSQLの全データをバックアップしています pg_dumpall > postgres.out サーバAを触るのは怖いので、別のマシンB(Windows-Xp)に postgresql-8.2.6をインストールしました。 このバージョンは、postgresqlとともに、pgAdmin3というGUIの管理 ツールもついていると聞きここに、サーバAからバックアップされている postgres.outをrestoreして pgAdmin3でデータベース・テーブル等をみようとしています (postgres.out)を使ってのリストアの仕方は (1)(postgres.out)をpostgresqlの/binディレクトリの中に入れる (2)psqlのメニューから次のコマンドを打つ psql -d manmg -f postgres.out (3)pgAdmin3を立ち上げるとサーバAのDBは追加されているようなのですが テーブルは(0)となって見えません マシンBの方のPostgreSQLについてはインストールしたままでサーバA のpostgresqlの設定等は何もしていません 何か設定する所はあるのでしょうか 上記手順でlinuxから吐出されたバックアップデータをWindowマシンに リストアする方法は間違っていないのでしょうか よろしくお願いします。
質問日時: 2008/01/21 15:17 質問者: kumasan98
解決済
1
0
-
group by で重複行を、縦横に展開したい
下記のようなテーブルがあります。 テーブル名:masta フィールド:hinmei,tani,hiduke,ryou これを 品名 | 単位 |1月|2月|3月| A |リットル|10|20|30| B |グラム |12|13|14| のようにてんかいしたいのです。 現在SQLは SELECT Hinmei ,Tani ,Hiduke ,SUM(ryou) as ryou FROM masuta WHERE hiduke BETWEEN '200801' AND '200812' GROUP BY Hinmei ,Tani ,Hiduke このようにしてますが、横てんかいの方法が分かりません。 どのようなSQLをかけばいいのでしょうか?
質問日時: 2008/01/19 14:50 質問者: wagonahru
ベストアンサー
1
0
-
SQL文の作成について
下記のようなテーブルがあります. テーブル名:logdata フィールド: 1)日付: timestamp with time zone 2)発信元IPアドレス: inet 2)ポート番号: integer 具体例はつぎのようなものです. 2008/01/14 00:00:00, xxx.xxx.xxx.xxx, 445 2008/01/14 00:00:01, xxx.xxx.xxx.xxx, 135 ・ ・ ・ 2008/01/18 23:59:59, xxx.xxx.xxx.xxx, 445 今回,発信元IPアドレスは特に考慮せず, 1時間ごとの各ポートへのアクセス数を出力させたいのですが, どのようなSQLを書けばよろしいでしょうか?
質問日時: 2008/01/18 22:15 質問者: mochi25
解決済
5
0
-
複文によるSQLインジェクションを防ぐには
複文によるSQLインジェクションを防ぐには、ユーザー入力値から「;(コロン)」を除去すればOKでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。
質問日時: 2008/01/17 15:24 質問者: kinmojr
ベストアンサー
1
0
-
ゼロ割りエラーの回避について
ゼロ割りを回避する一般的な関数、方法があれば教えて頂けないでしょうか? 値が「0」の場合は除算を行わないで、そのまま「0」を返却するような関数はあるのでしょうか? インターネットで調べたのですが、見つかりませんでした。 有識者の方、よろしくお願いします。
質問日時: 2008/01/15 23:50 質問者: tosshi_1978
ベストアンサー
1
0
-
テーブルに存在しない列をselect文で出力する事はできないでしょうか?
例えば、「TEST」テーブルに列 A,B,C が存在する場合、 SELECT A,B,C FROM TEST; で、A,B,C を出力できますが、TEST テーブルに存在しない列 D を固定値「あああ」 で出力する事は可能でしょうか? 可能でしたら、SQLの記述を教えて頂けないでしょうか? 有識者の方、よろしくお願いします。
質問日時: 2008/01/12 12:31 質問者: tosshi_1978
ベストアンサー
1
0
-
テーブルの結合について
皆さん教えてください。 zaiko と testBと言うテーブルに商品IDカラムを入れておき この二つのテーブルを結合して商品データはあるけど 在庫がない物だけを抽出したいのですが、その場合どのような SQLになるでしょうか?? 商品データも在庫もある場合下記のSQLで商品情報と在庫データが 出てくるのですが、その逆と言うか、商品情報は登録してあるが、 在庫テーブルに登録されていない商品情報を検索したいと思っております。 select zaiko.*,product_data.* from zaiko inner join product_data on zaiko.nyuko_item_code = product.item_code ではどうかよろしくお願いします。
質問日時: 2008/01/11 18:54 質問者: nerotom
解決済
1
0
-
Windoes版のバックアップ方法
環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 データベースクラスタが破損したようなので postgresSQLを再インストールしようと思います。 その時、今まで作成したデータベースをバックアップをしたいのですが Windoes版でどのようにしたら 宜しいですか?
質問日時: 2008/01/08 13:20 質問者: wee
ベストアンサー
1
0
-
PostgreSQLのパーティショニングの方法
http://itpro.nikkeibp.co.jp/members/ITPro/oss/20050722/165140/?P=2 このページにかかれている「Constraint Exclusion」という方式を使用してテーブルのパーティショニングを行ったつもりなのですが、あるデータをSELECT文で検索してみても全てのテーブルに対して検索してしまっているようなのです。 このページに書いてある通りにテーブルを作成したのですが、どこに問題があるのか分かりません・・・。 何か駄目な所があるならば教えてください。お願いします。
質問日時: 2008/01/08 09:20 質問者: atobex2000
ベストアンサー
5
0
-
date型でのbetweenについて教えてください。
皆様、新年明けましておめでとうございます。 早速ですが、date型でのbetweenについて教えてください。 SQL文 SELECT * FROM test WHERE date between date '2007-12-01' and date '2007-12-31' を発行すると、2007-12-31のレコードがあるのに該当しません・・・ 試しにSQL文を SELECT * FROM test WHERE date between date '2007-12-01 00:00:00' and date '2007-12-31 23:59:59' としても2007-12-31のレコードは検索されません・・・ SQL文を SELECT * FROM test WHERE date between date '2007-12-01' and date '2008-01-01' にすると2007-12-31が該当するのですが、 SELECT * FROM test WHERE date between date '2007-12-01' and date '2007-12-31' では2007-12-31のレコードは該当しないものでしょうか?? select * from test where num between 10 and 100 とした場合では、num が 10 ~ 100 のものが問い合わされますよね?? date型になるとこうならないのでしょうか?? よろしくお願いします。
質問日時: 2008/01/07 10:39 質問者: nerotom
ベストアンサー
3
0
-
insert処理でDATE型を追加したい
環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 以下のようなテーブルに insert処理でデータを追加したいと思っています。 --------------------------- CREATE TABLE m_lecturehistory ( lecturecode text, lecturedate date, ・ ・ ・ --------------------------- $sql = "insert into m_lecturehistory (lecturecode, lecturedate ) values ('{$line[0]}','2008/1/1');"; このようにしてinsert処理をすれば正常に追加できます。 ただ、以下のようにして 変数からDATE型に追加しようとするとエラーになります。 --------------------------- $line[1] = "2008/1/1"; $sql = "insert into m_lecturehistory (lecturecode, lecturedate ) values ('{$line[0]}',"{$line[1]}");"; 対処方法をご存じでしたら、 ご教示して頂けたら幸いです。
質問日時: 2007/12/27 14:18 質問者: wee
ベストアンサー
1
0
-
postgresql 7.4 スキーマのオーナーを変更したい
postgresql 7.4のスーパーユーザで以下のコマンドを実行しましたが ALTER SCHEMA name RENAME TO newname;は実行できますが ALTER SCHEMA name OWNER TO newowner;シンタクスエラーで所有者を変更できません。7.4では変更できないのでしょうか?
質問日時: 2007/12/26 19:12 質問者: rondonpari
解決済
1
0
-
PostgreSQL インストールエラー
PostgreSQL 8.1.3をインストール時に以下のエラーが出ます。 ダイアログ1 ---- タイトル>内部のエラー メッセージ>Failed to get system metrics for terminal services: 87 ---- ダイアログ2 ---- タイトル>致命的なエラー メッセージ>インストーラは、エラーのために途中で終わりました。 ---- どうすればインストールできるようになりますか?
質問日時: 2007/12/26 18:50 質問者: rondonpari
ベストアンサー
1
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【PostgreSQL】に関するコラム/記事
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
列が存在しないと言われる
-
postgresql についてです
-
自治会総会の成立要件について
-
PostgreSQL14.6のSSL対応について
-
SQLでUPSERTを一度に複数行やる方法
-
エクセルで縦のカラムデータをカン...
-
postgreSQLのint型は桁数指定ができ...
-
テーブルのレコードの追加でに他の...
-
plgファイルの開き方
-
Windows10でQuickTimeがインストー...
-
新規作成したPostgresqlデータベー...
-
postgresqlでのトランザクションに...
-
特定の位置が特定の範囲に含まれる...
-
select文の書き方で分からない所が...
-
数値が定期的にあらわれる文字列か...
-
bashスクリプトでpostgreSQLの日付...
-
SQLにて指定日付より前、かつ最新の...
-
指定の日付以前かつ最新を取得するS...
-
PostgreSqlでFunctionの作成について
-
PostgresSQLの環境設定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自治会総会の成立要件について
-
SQLにて指定日付より前、かつ最新の...
-
postgresql についてです
-
postgreSQLのint型は桁数指定ができ...
-
PostgreSqlでFunctionの作成について
-
SQLでUPSERTを一度に複数行やる方法
-
エクセルで縦のカラムデータをカン...
-
plgファイルの開き方
-
列が存在しないと言われる
-
PostgreSQLについて教えてください ...
-
select文の書き方「半角カナ+英+...
-
postgresqlでのトランザクションに...
-
Windows10がインストールできません...
-
新規作成したPostgresqlデータベー...
-
PostgresSQLの環境設定について
-
select文の書き方で分からないとこ...
-
shellからpostgresqlへの変数の引き...
-
PostgreSQL14.6のSSL対応について
-
PostgreSQL レコードからアイテム種...
-
CPRM decrypterのエラーコードについて
おすすめ情報