回答数
気になる
-
ASで指定した項目名をGROUP BYやORDER BYで使用する方法。
ただいまSQLの勉強をしています。 タイトルどおりなのですが、ASで指定した項目名をGROUP BYやORDER BYで使用する方法はあるのでしょうか? CASE文を使用したこちらのSQL文↓で、SELECT文、GROUP BY句、ORDER BY句の中に重複する部分が多く出てしまうのでどうにかすっきりさせたいと思い、独自に調べたり色々と試したのですがわからず、質問させていただきました。 お分かりになる方、いらっしゃいましたらご助言どうぞよろしくお願いいたします。 <SQL文> SELECT CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計' WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計' ELSE '購入番号(3,6,9,…)の集計' END AS グループ名称 , sum(suryo) AS 数量合計 FROM tran GROUP BY CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計' WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計' ELSE '購入番号(3,6,9,…)の集計' END ORDER BY CASE WHEN trancd % 3 = 1 THEN '購入番号(1,4,7,…)の集計' WHEN trancd % 3 = 2 THEN '購入番号(2,5,8,…)の集計' ELSE '購入番号(3,6,9,…)の集計' END;
質問日時: 2009/03/08 23:58 質問者: noname#114110
ベストアンサー
1
0
-
異なるデータベースでのINSERTについて
ただいま、PostgreSQL、VB6.0を使用して開発中です。 日々レコードが追加される、A_DBにあるAテーブルのデータを バックアップとして、まったく構造の同じ、B_DBにあるBテーブルに差分をINSERTするようにしたいのですが、どのようにコードを記述すればよろしいでしょうか? イメージ的には下記に近いのですが… http://ziddy.japan.zdnet.com/qa691870.html http://ziddy.japan.zdnet.com/qa1099610.html 初心者なので、不十分なところがあるかも知れませんが、ご回答よろしくお願いします。
質問日時: 2009/03/03 16:16 質問者: masu41
ベストアンサー
1
0
-
Linux+PostgreSQLでの設定
こんにちは。 Linux+PostgreSQLでpg_hba.confの設定がよく分からず困っています。 リモートからは使用せず、localhostのみの接続を許可したいのですが、 どのように設定すればいいのでしょうか? CentOS5+PostgreSQL8.1.9です。
質問日時: 2009/02/24 18:18 質問者: jobvba
ベストアンサー
1
0
-
可変長多次元配列でのソートに関して
ただいま、postgresを使用して開発中です。 そこで、下記のようなSQL文を書いているのですが、 できれば、多次元配列の「b.code」の記述順で表示したいのですが、 下記のSQL文を実行すると「a.code」の記述順で表示されます。 どのようなSQL文に変更すればよろしいでしょうか? SQL: select a.name as aname , b.name as bname from atable a, btable b where a.code = any(b.code[1:1]); atable code | neme -------------- 2 | AAA 1 | BBB btable code | name ---------------------- {{1,2},{3,0}} | DDD 『現在の結果』 aname bname --------------- AAA | DDD BBB | DDD 『得たい結果』 aname bname --------------- BBB | DDD AAA | DDD 長くなりましたが、よろしくお願いします。
質問日時: 2009/02/24 13:12 質問者: masu41
ベストアンサー
1
0
-
PL/pgSQLを使用してデータ移行がしたい。
Ver8.3.3 現行のテーブルの値を、別テーブルへ移行したいのですが、 コーディングのしかたが良く解りません。 ex) Aテーブル ID ビット合計1 ビット合計2 Bテーブル ID ビット合計データ種別 ビット合計 1レコードの物を、2レコードに変換する具合です。 サンプル等が記載されているサイト等を教えて頂ければ幸いです。 宜しくお願い致します。
質問日時: 2009/02/20 19:31 質問者: JACK_TOSHI
ベストアンサー
3
0
-
INSERTできるレコード数を制限する。
こんにちは。 postgresでレコード数を意識した操作では、SELECT句のlimitが 思いつくのですが、DBのテーブルに登録できる最大行数を設定し、 最大行数を超えたらINSERTが強制的にできないようにする方法 に悩んでいますので、教えて下さい。 環境はredhat9+apache2+tomcat+Jsp+Java1.4+postgres7.2で開発・ 保守をしています。 既にWebで公開されており、既に登録された企業の中から好きな企業 に会員として登録し以降その企業のサービスを受けるシステムです。 営業でのプレゼン兼貸出し用(デモ版)としてノートPCに構築する ことになりました。 「デモ版」と言うことで、機能制限をかける方法として、 ・登録できるレコード数を制限する と方針になりました。 他に、Javaソースに制限機能を追加、.httpaccsessによる認証を 検討しましたが、これに決まった次第です。 すみませんが、ご教授の程お願いします。
質問日時: 2009/02/20 10:58 質問者: petit-pixy
解決済
2
0
-
デットロックとFOR UPDATE
こんにちは。 PostgreSQLのマニュアルを見ますと。次のような文の組み合わせはデットロックになる可能性があるとされてます。 プロセス1 UPDATE accounts SET balance = balance + 100.00 WHERE acctnum = 22222; UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 11111; プロセス2 UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 11111; UPDATE accounts SET balance = balance + 100.00 WHERE acctnum = 22222; #PostgreSQL8.1.5のマニュアルの12.3.3を参照しています。 #http://www.postgresql.jp/document/pg815doc/html/explicit-locking.html#LOCKING-DEADLOCKS こういった場合の回避方法なのですが、 プロセス1 SELECT * FROM accounts WHERE acctnum=11111 AND acctnum = 22222 FOR UPDATE; UPDATE accounts SET balance = balance + 100.00 WHERE acctnum = 22222; UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 11111; プロセス2 SELECT * FROM accounts WHERE acctnum=22222 AND acctnum = 11111 FOR UPDATE; UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 11111; UPDATE accounts SET balance = balance + 100.00 WHERE acctnum = 22222; とするのは大丈夫なのでしょうか? 本来なら、マニュアルにもある通り、UPDATEの順番を揃えるのがいいのでしょうが、実際にはWHEREの部分が変数で変化してしまうため、少々手間なのです。 実際のところ、このような場合、SELECT ~ FOR UPDATEで大丈夫なのでしょうか?それともテーブルレベルロックを用いるべきでしょうか?あるいはソートを用いるなどしてでも順番をそろえるべきなのでしょうか? 実際の処理はpl/pgsqlの関数の中で、EXECUTE文によって行っています。 なので、なるべく複雑な処理は避けたいところなのです。 できれば情報ソースなども示してご説明いただけるとありがたいです。よろしくお願いいます。
質問日時: 2009/02/13 19:35 質問者: titokani
ベストアンサー
2
0
-
date型に空白を入れるとエラーになる
現在、CSVファイルからCOPYコマンドを使用し、 データのINSERTを行いたいと思っております。 で試したところ、 COPY test from '/var/lib/pgsql/csv/insert.csv' USING DELIMITERS ','; とコマンドを入力した結果 ERROR: invalid input syntax for type date: "" CONTEXT: COPY test, line 1, column purchase: "" となってしまいます。 これを回避するためには、どうすればよいでしょう。 postgresqlは初心者なので、申し訳ございませんが 教えてください。よろしくお願いいたします。
質問日時: 2009/02/12 11:52 質問者: hi_sta
ベストアンサー
2
0
-
INSERTができない
現在、PostgreSQLを使用し、簡単なテストを しようと思っております。私は素人です。 ただ、下記の問題にぶち当たってます。 createdb --encoding EUC_JP test で「test」というDBを"EUC_JP"で作成 /var/lib/pgsql/data/postgresql.conf の client_encoding = EUC_JP を変更し、 posgre再起動。 INSERT INTO test VALUES (1,'山田太郎'); というINSERT文を投入したところ、下記エラーが発生。 ERROR: invalid byte sequence for encoding "EUC_JP": 0x8be9 HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding". これってどうなんでしょう。 申し訳ないですが素人の私に教えてください!! よろしくお願いいたします。
質問日時: 2009/02/06 11:36 質問者: hi_sta
ベストアンサー
1
0
-
VACUUM ANALYZE の頻度について
表題の件について質問させてください。 環境は PostgreSQL8.2.1 pgpoolにてDB2台で運用しております。 現在、とあるECサイトの運用などに携わっております。 1日平均が2~3千件の注文があり、注文情報を格納してるテーブルが150万件くらいになっています。 元々の作りが全てその注文テーブルに色々な情報を持たせてしまっており、更新頻度も結構高いです。 その状態で、現在は3時間に1回VACUUM ANALYZEをかけているのですが、その影響かはわからないのですが、セッション数(pg_stat_activityの件数)が正常運用時の3倍程度になる事が、ここ最近頻発しており、サイト全体の処理速度に影響しております。 1.VACUUM ANALYZEは、ロックがかからずにSELECT,UPDATE,INSERTなどが出来ると認識しておりますが、実行中に更新がかかっても問題ないという認識はあっておりますでしょうか? ロックがかかったまま、セッションに残ってしまっているのは別の原因という事であっていますでしょうか? 2.VACUUM ANALYZEの頻度として、3時間に1回という頻度は多いのでしょうか? やはり、pg_stat_activityで監視をしていると、VACUUM ANALYZEの処理に時間がかかって、セッション数が多くなり、処理速度にかなり影響をあたえているのでは無いかと言う気がしてなりません。 以上、2点について、何かご教授頂ければ幸いです。 宜しくお願い致します。
質問日時: 2009/01/30 12:20 質問者: u_713
ベストアンサー
1
0
-
主キーが文字型での結合
主キーが文字列型のカラムhoge_idがあります。 (hoge_idは英数字8文字とします) hoge_idで、他のテーブルに結合します。 また、Webからアクセスする必要があり、URLのパラメータで、 ?hoge_id=A1B2C3D4 の様に、主キーを渡す必要もあります。 文字列を主キーにする方法に慣れていないせいか、気持ち悪く感じます。 主キーを別途serial型のカラムidを作成し、 hoge_idには、ユニークキーで設定をし、 結合や、URLのパラメータは主キーのidを使う方法はあまり意味がないでしょうか。 アドバイスを頂けませんでしょうか。 よろしくお願い致します。
質問日時: 2009/01/29 16:52 質問者: kakekake_07
ベストアンサー
1
0
-
SQL 同じテーブル構造の複数のテーブルから重複なしでデータを取得
テーブル名が違うだけで同じテーブル構造のテーブルが複数個あります。 仮にテーブル名を、A、B、C、Dの4個だとします。 テーブル名を格納するテーブルがあるので、そこから取得する方法でも構いません。 それらのテーブルから、フィールド名[名前]のデータを重複なしで取得したいのですが、SQL文が思いつきません。 取得するフィールドは[名前]だけです。 私の使用している環境はPostgreSQL8.1.9です。 SQL文を教えてください。よろしくお願いします。
質問日時: 2009/01/29 10:44 質問者: jobvba
ベストアンサー
1
0
-
PostgreSQLの「not null」制約の追加
こんにちは。いつもお世話になります。 PostgreSQLのversion7.2.8で、「not null」制約の追加、削除の方法をおたずねします。よろしくお願いします。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL; で試したところ、syntaxエラー(構文エラー)で失敗。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL; で試してみても、同じくsyntaxエラーです。 version7.2.8が原因でしょうか? また、version7.2.8でも「not null」制約の追加、削除が できる他の方法はありますでしょうか? テーブルを作り直さずに、 既存のテーブルのカラムへの制約の追加、削除をしようとしています。 よろしくお願いします。
質問日時: 2009/01/28 15:20 質問者: noname#106387
ベストアンサー
1
0
-
limitについて
limit 1 を使用して検索を行っているのですが、 70万件程のデータを検索する場合には1秒以内にて返ってくるにも関わらず、 8万件程のデータを検索すると全く返って来なくなります。 ちなみにlimit 1000とすると瞬時に返ってきます。 どなたか、このような事象の要因や対処法などをご存知の方がいらっしゃいましたらご教授願えませんでしょうか。
質問日時: 2009/01/26 10:25 質問者: minarai563
ベストアンサー
2
0
-
PostgreSQLとmySQLのメリット、デメリット
PostgreSQLとmySQL どちらかのデータベースを選びたいのですが 両方使ったことがあるかた それぞれのメリット、デメリットを 教えてください
質問日時: 2009/01/25 17:34 質問者: 1111111119
ベストアンサー
2
0
-
windows版postgresql 異なるバージョンの共存について
現在、postgresql8.2が入っているのですが、 postgresql8.3も共存させることはできるのでしょうか。 今まで、バージョン8.2を利用して作成したプログラムがあるので、8.2も残しておきたいのです。 バージョン8.3にすると、今まで8.2で作成したプログラムのSQL文が日付型等の指定が正しくない(?)為、 エラーになってしまう可能性があり、8.3に移行するわけにもいかず、困っています。 バージョン8.2がインストールされている状態で、バージョン8.3をインストールするだけで、問題ないのでしょうか。 現在、pgAdminnIII上には、「PostgreSQL Database Server 8.2」というサーバーがあるのですが、 インストールすると「PostgreSQL Database Server 8.3」等のように追加され、異なるバージョンが動くのでしょうか。 わかりづらい文章で申し訳ありませんが、よろしくお願い致します。
質問日時: 2009/01/20 15:03 質問者: muttu
ベストアンサー
2
0
-
round関数について
お世話になります。Sql初心者です。 round関数について質問があります。 double型のデータを少数点第一位までのデータを取得したいと思っています。 select round(double型の数値)ではデータが取得できますが、 double型のデータをselect round(double型の数値,1)という形で とするとエラーになってしまいます。 double型のデータをround関数で小数点指定で取得する場合は、どの様に 記述すればよいのでしょうか? どなたかご教授願えますでしょうか? 何卒よろしくお願いいたします。
質問日時: 2009/01/19 11:15 質問者: tiyojisaka
ベストアンサー
1
0
-
2つの条件を満たすのレコードのカラムを抽出する方法について
下記のテーブルがあったとします。 【t_tblテーブル】 ――――――――――――― |id1 |id2 |id3 | ――――――――――――― |1 |1 |10 | |1 |2 |12 | |1 |3 |9 | |1 |4 |8 | |1 |5 |14 | |2 |1 |14 | |2 |2 |8 | |2 |3 |9 | |2 |4 |12 | |2 |5 |10 | |3 |1 |4 | |3 |2 |2 | |3 |3 |3 | |3 |4 |5 | |3 |5 |6 | |4 |1 |6 | |4 |2 |5 | |4 |3 |3 | |4 |4 |2 | |4 |5 |4 | ――――――――――――― このテーブルの特定のレコードを抽出する為に、 2つパラメータを渡すとします。 1. 12 2. 8 そして下記の条件を満たすレコードのid1を抽出したいと思います。 1. 「id3」 = 「12」 かつ 「id3」 = 「8」 を満たすid1 (※この時点で1と2がヒットします) 2. 条件1を満たした上で、「12」のid2 < 「8」のid2 (※この時点で1のみヒットします) 下記のSQLで条件1を満たせる事は確認しましたが、 条件2を満たす方法が分かりませんでしたので、 アドバイスいただける方がいらっしゃいましたら、 ご教示いただきたいと思います。 select id1 from t_tbl group by id1 Having SUM(CASE WHEN id3=12 Then 1 Else 0 End)>0 And SUM(CASE WHEN id3=8 Then 1 Else 0 End)>0 使用バージョンは7.4.19です。 よろしくお願いします。
質問日時: 2009/01/15 22:30 質問者: iroha_168
ベストアンサー
1
0
-
テーブルからのselectにおいてデータの有無により結果をわけたい
id | point ----+------- 1 | 10 2 | 9 3 | 5 .... というテーブルがあるとします. idを指定してpointを得たいのですが、そのidがこのテーブルに存在しない場合は空の結果ではなく0を返したいのです. plpgsqlなどを使いif文で場合分けすればできることはわかっているのですがSQL文だけで(それもできれば1文で)これを実現する方法はあるでしょうか? よろしくお願い致します。
質問日時: 2009/01/12 19:38 質問者: yasumitu
ベストアンサー
7
0
-
インデックスの張り方について
とあるテーブルのレコード数は、全部で28レコードあります。 このテーブルにはインデックスを張っておらず、シーケンシャルスキャンでDBよりSELECTしています。 通常にシステムを運用する上では問題ないのですが、負荷試験などで同時接続数を50などにしループでDBにアクセスさせるとき、その他の4000万レコード程度あるテーブルをSELECTしてくるのは0.00xxx秒で行えるのに対し、この28レコードしかないテーブルからSELECTしてくる際は、遅い場合で0.xx秒もかかってしまいます。 この28レコードしかないテーブルにインデックスを張っても、レコード数が少なすぎてまったく意味がありませんでした。 ちなみにこのレコードへは下記のようなSELECT文を発行しています SELECT xxx,xxx,xxx FROM xxxx where カラム1 = aaaa AND カラム2 IN (bbb,ccc) AND カラム3 = ddd; このレコードのSELECT文を高速化させるには、どのような手段があるでしょうか。 お手数ですがご教示いただけますと幸いでございます。 DBはPostgreSQL、PHPのWebアプリケーションよりDBにアクセスしています。
質問日時: 2009/01/12 16:58 質問者: myaa_myu
ベストアンサー
2
0
-
ベストアンサー
1
0
-
コマンド履歴
POSTGRESにはコマンド履歴を参照する機能などはございますでしょうか? ご存知の方、アドバイスをお願いします。
質問日時: 2009/01/02 16:04 質問者: nikogoo
ベストアンサー
1
0
-
tcpip_socketの設定をするとpostgres起動時にエラーになる。
開発によるテストで外部からtcp/ip接続を行いたいので、 tcpip_socket = true という項目をpostgresql.confに追加してみましたが、 postgres起動時に以下のようなエラーにり起動できません。 起動時のコマンド: pg_ctl -D /usr/local/pgsql/data start -w -o "-S -i" エラー: FATAL: unrecognized configuration parameter "tcpip_socket" postmaster (PostgreSQL) 8.1.9 何か原因分かりますでしょうか。
質問日時: 2008/12/22 14:38 質問者: take_july
ベストアンサー
1
0
-
横並びのコード管理を別テーブルからコードと名称を取得するには?
例えば、 [品物管理テーブル] cd:name 01:スナック菓子 02:ジュース 03:アイス 04:ガム ・ 99:その他 と [店舗別売り上げランキング管理テーブル] shop:no1:no2:no3 A店: 03: 01: 04 B店: 01: 02: 04 C店: 02: 01: 03 D店: 02: 01:null があった場合に A店の売り上げ順に[品物管理テーブル]のcdとnameを取得したい場合は どのようにすればよいのでしょうか? SELECT cd, name FROM [商品管理テーブル] AS syo LEFT JOIN [店舗別売り上げランキング管理テーブル]AS ran ON syo.cd=ran.no1 OR syo.cd=ran.no2 OR syo.cd=ran.no3 WHERE ran.shop='A店'; とすると、ランキングを無視して[品物管理テーブル]の順で 01:スナック菓子 03:アイス 04:ガム と返ってきてうまくいきません。
質問日時: 2008/12/21 01:00 質問者: ramen41201
解決済
2
0
-
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
初めてこちらで質問させていただきます。 どうぞよろしくお願いします。 早速ですが、 現在ストアドファンクション(PL/pgSQL)にて以下のような形になっています。 変数d1,d2,d3に値をセットするにあたり テーブルt1を3回スキャンしています。 これを1回のスキャンでセットするような 方法はないのでしょうか? DECLARE d1 integer; d2 integer; d3 varchar(10); begin select min(c1) into d1 from t1; select min(c2) into d2 from t1; select min(c3) into d3 from t1; 各種処理 return v; end; 気持ち的には以下のようなSQLを書きたいのですが、 syntax error となります。 (NG例) select min(c1) into d1,min(c2) into d2,min(c3) into d3 from t1; 何か良い案がありましたら教えてください。 「それは出来ません」と言う回答でもありがたいです。 ※あきらめがつくので。。 それではよろしくお願いします。
質問日時: 2008/12/16 19:35 質問者: baunce
ベストアンサー
3
0
-
postgres FILLFACTOR 確認方法
ALTER TABLE users SET (FILLFACTOR=80); 上記のようにDBに設定後、テーブル名(users)のFILLFACTORが 80%になっているか確認する方法がありますか?
質問日時: 2008/12/16 12:29 質問者: hoge_user
解決済
2
0
-
次の条件を満たすSQL文をご教示下さい。
テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。
質問日時: 2008/12/14 15:44 質問者: 1percent
ベストアンサー
1
0
-
SQL インジェクションは PQexecParams で防げますか?
お世話になっております。商用のサーバーを運営しているものです。 最近私が運営しているサーバーでチャットをやることになっているのですが、できればワイセツなどの禁止用語以外は自由にしたいのですが、そうするとSQLインジェクションの心配があります。それで、ユーザーが入力した文字列を扱う部分を PQexecParams を使ってデータベースに入れようと思っているのですが、これだけで問題は解決できますか? これでも危険な攻撃を受けるケースがあるならばお教えください。
質問日時: 2008/12/14 04:50 質問者: moritan2
ベストアンサー
1
0
-
ウェブページが見れません(日本PostgreSQLユーザ会)
ウェブページが見れなくなっているのですが、 どなたか情報をお持ちではないですか? たぶん、サーバがダウンしてるのではないかと予想しているのですけど。 2008-12-12 18:00現在
質問日時: 2008/12/12 17:59 質問者: Yanch
ベストアンサー
2
0
-
無視されるdistinct
お世話になります 大規模商談をまとめた営業のリストを作るSQLを書こうとしています。 営業部員テーブル (test.person) id | name ----+------ 1 | 山田 2 | 高橋 3 | 田中 商談テーブル (test.deal) id | person_id | customer | amount ----+-----------+----------+-------- 1 | 1 | XX商事 | 20000 2 | 3 | BB電機 | 10000 3 | 2 | ZZ不動産 | 2000 4 | 1 | RR証券 | 8000 期待している検索結果 name | amount | customer ------+--------+---------- 山田 | 20000 | XX商事 田中 | 10000 | BB電機 高橋 | 2000 | ZZ不動産 下記のようなSQLを書きました。 select distinct name,amount,customer from test.deal,test.person where person.id=deal.person_id order by amount desc しかし、nameをdistinctしているにもかかわらず、結果は下記の通り、「山田」が重複しています。 name | amount | customer ------+--------+---------- 山田 | 20000 | XX商事 田中 | 10000 | BB電機 山田 | 8000 | RR証券 高橋 | 2000 | ZZ不動産 いろいろと調べて、group by を使えばいい、というようなやり方を示している例も多かったのですが、それもうまくいきません。(必要であれば載せます) 期待通りの結果を得るにはどのようなSQLを書けばよろしいでしょうか。 よろしくお願いいたします。
質問日時: 2008/12/11 21:49 質問者: annyG
ベストアンサー
5
0
-
CASE文での問い合わせ
下記のSQLでWHEREでnow_tが存在しないとでてSQLを実行できません。 どのようにしたらnow_tをWHEREで判定できるでしょうか。 WHEREが先に実行される為に存在しないというエラーがでるのは わかるんですが、でないようになんとかできないでしょうか? SELECT CASE WHEN s = 1 THEN 1 ELSE 2 END AS now_t FROM test WHERE now_t = 1
質問日時: 2008/12/09 17:11 質問者: sikino
解決済
1
0
-
デフォルト値,CHECK制約を表示するSQL文
検索しても中々見つからなかったので質問させて頂きます。 dumpではなくselect文で、カラム(列)の 設定したデフォルト値を表示するSQL文 設定したcheck制約を表示するSQL文 を教えて頂きたいです。 よろしくお願いします<(_ _)>
質問日時: 2008/12/08 23:59 質問者: ruri3953
ベストアンサー
1
0
-
それぞれの合計を横並びに表示するには
1つtableの中に ・営業所 ・販売車種メーカー ・販売日 といった項目があるとき、 縦に営業所。横に、販売車種メーカー別の合計を出すにはどのようにしたら良いでしょうか? |トヨタ| 日産 | 本田 |マツダ|スバル| A営業所| 15 | 5 | 8 | 1 | 3 | B営業所| 7 | 10 | 7 | 5 | 5 | C営業所| 20 | 14 | 11 | 8 | 2 |
質問日時: 2008/12/08 14:24 質問者: ramen41201
解決済
1
0
-
複数行の結果を単一列に連結(複数のテーブルを参照)
psql (PostgreSQL) 7.3.4です。 困っています 以下のような【TABLE1】と【TABLE2】を TABLE1のt1tot2にで結合した結果を 【A.結果】のように★▲●の行を1行に表示させて取得したいのですがうまくいきません。 【TABLE1】 ID,ID_SUB, TYPE, VALUE A A1 t1 1 ★ A A1 t2 2 ★ A A1 t1 1 ▲ A A1 t2 3 ▲ B B1 t1 1 ● B B1 t2 3 ● 【TABLE2】 ID, TYPEV1 ,TYPEV2 ,Code A 1 1 AAA1 A 1 2 AAA2 ★ A 1 3 AAA3 ▲ B 1 3 BBB1 ● TYPEV1=TABLE1のt1の値 TYPEV2=TABLE1のt2の値 【得たい結果】 ID, ID_SUB, TYPEV1, TYPEV2,Code A A1 1 2 AAA2★ A A1 1 3 AAA2▲ B B1 1 3 BBB1● 下記でTABLE1の2行を1行にまとめることができましたが、 問題のTABLE2との連結方法が分かりません。 select TABLE1.ID , TABLE1.ID_SUB , TABLE1.VALUE as t1 , (SELECT tbl1.VALUE FROM TABLE1 tbl1 where tbl1.TYPE=t2 and (TABLE1.ID , TABLE1.ID_SUB)=(tbl1.ID , tbl1.ID_SUB)) as t2 from TABLE1 where TABLE1.TYPE = t1 【結果】 ID ,ID_SUB , t1 ,t2 A A1 1 2 ★ A A1 1 3 ▲ B B1 1 3 ● 何か良い方法はありますでしょうか?
質問日時: 2008/12/04 14:59 質問者: wanton_dog
解決済
1
0
-
PostgreSQLの再インストールにて・・・
一度インストールしたPostgreSQLのパスワードを忘れてしまいまして、アンインストールをして再インストールしたところ、下記のようなエラーが出てしまいまして、悩んでいます。 --------------------------- データディレクトリ・エラー --------------------------- 指定されたデータ・ディレクトリーは、存在します。 あなたが同じ主要なバージョン番号をもつ現存するデータベースを持っていれば, データベース・クラスターを初期化する必要がありません。 もし異なる主要なバージョンをもつ現存するデータベースを持っていれば、古いデータベースをバックアップして、新しいものを作り出す必要があります。 ---------------------------- どうしたら指定されたデータ・ディレクトリーを削除することができるでしょうか? 助けて下さい。
質問日時: 2008/12/03 11:13 質問者: led_g
解決済
1
0
-
alter tableすると、処理が止まってしまい困っています
表題の件で質問させて下さい。 以前までは特に問題なく、alter tableなどで列を追加出来ていたのですが、ここ最近、データ量が増えてきたためか、列追加にすごく時間がかかってしまっています。 それが原因なのかはわからないのですが、alter tableで列を追加すると、処理が止まってしまい、プロセスをkillして、とりあえず対処する・・・ と言うような対応が続いています。 調べたところ、alter table はテーブルロックがかかってしまうらしいのですが、これは begin でトランザクションを開始させても特に意味はないのでしょうか? いろいろと調べてはいるのですが、基本的な事は見つかるのですが、運用する時にどういった注意点があるか等が今いち、調べ切れませんでしたので、どんな運用をしていけばいいのかご教授して頂けると助かります。 宜しくお願いいたします。
質問日時: 2008/12/01 13:32 質問者: u_713
ベストアンサー
1
0
-
ダンプリストア時のDBデータ不整合
環境 CentOS5系 64bit DBバージョン 8.3.3 本番DBサーバからpg_dump -c -D でダンプしたデータを、ローカルテストDBサーバ へpsql にてリストアした際、データ不整合が、一部のテーブルに発生しました。 前のデータが一部クリアされずに残っている状況です。 ダンプのデータは、DBの内容と同じなのですが。 因みに、pg_dump パラメータ無しのダンプのリストアでは、発生しません。 何が、原因でしょうか? もしかしてバグ? ご教授願えれば幸いです。 宜しくお願い致します。
質問日時: 2008/11/29 16:01 質問者: JACK_TOSHI
解決済
1
0
-
階層構造データの効率的な検索
ある製品の部品、その部品を構成する部品、そしてその……というデータをDBに格納しています。 それぞれの部品にはIDがついていて、ツリーで見るとこんなかんじです。 100 +120 +300 +250 +290 これは、100というIDを持った部品にはIDが120の部品があり、120の部品には300という部品があり、、、、ということを表しています。 これを以下のようなテーブルに持っています。 items id | child_id | ---------- 100 | 120 | 120 | 300 | 300 | 250 | 300 | 290 | ここで、ある部品のIDをキーにして、その部品を構成する部品全て(つまり、子部品、孫部品、ひ孫部品……)のIDを検索するようなSQLを書きたいと思っていますが、巧い方法が思い浮かびません。(今は10階層あったら、10回SQLを発行しています) これを1回のSQLで、全てを検索することはできないでしょうか。言うまでもありませんが、10回のSQLよりもパフォーマンスは良くないと困りますが。。。 周りの人はみんなできないんじゃないかと言っていますが、もしできる、という方法をご存じの方はご教示いただければと思います。 DBはPostgreSQL8.2ですが、MySQL5を使っているアプリでも同様の問題があるので、そちらでも使えればうれしいです。 よろしくお願いいたします。
質問日時: 2008/11/26 20:37 質問者: annyG
ベストアンサー
1
0
-
windowsから見えない
勉強しようと思いLINUX(RHEL4.0)にapache2.2.9、postgresql8.3.5、PHP5.2.6を入れました。 データベースを作成しwebブラウザで見ようと思ったら ○ローカルでは見えた ○他のLINUXマシンからは文字化けしたが見えた ○windowsマシンからは空白のみでデータベースの表示が無い windowsマシンからは何か特別な作業が必要なのでしょうか? 情報が足りないかとは思うのですがお気づきの点がありましたら教えて頂きたく御願い致します。
質問日時: 2008/11/18 13:16 質問者: naoki0714
ベストアンサー
2
0
-
pg_dumpallしたデータを他のマシンでリストアできる??
ご存知の方教えてください。 現在当方、fedora8にてPostgersql8.2.5を運用しております。 ちょっとマシンを変えたいと思いまして、現在のDB情報を すべて載せ替えたいと思っております。 A → B (Aが旧マシン Bが新マシン) 旧マシンでpg_dumpallしたものをBマシンでリストアする事は可能なのでしょうか? また、pg_dumpallしたデータはどこへ保存されるのでしょうか?? ご存知の方教えてください。 ではよろしくお願いいたします。
質問日時: 2008/11/17 11:08 質問者: neo_ts
ベストアンサー
2
0
-
バックアップとリストアについてのエラー
最近、DBを勉強し始めた、初心者です。 現在、pg_dumpコマンドでデータをバックアップして、リストアしようと試みています。DBのデータ容量が小さいうちは、問題なくリストアできるのですが、DBのデータの容量が大きくなってくると、「No buffer space available」とエラー表示されます。 この問題を解決するには、どうしたらいいのでしょうか? 詳しい方がいましたら、教えて下さい。 よろしくお願いします。
質問日時: 2008/11/14 17:32 質問者: takakids
ベストアンサー
1
0
-
PostgreSQL・Mysql → XMLエクスポート
PsqlやMysqlのXMLエクスポート機能について調べているのですが 中々そういった資料はありませんでした。そこで PostgreSQLもしくはMysqlのデータを XML形式でエクスポートする機能はあるんでしょうか? やはりC言語やツールなどを通して 変換するしかないのでしょうか? こんな質問で申し訳ありませんが 宜しければ教えて下さい<(_ _)>
質問日時: 2008/11/13 19:36 質問者: ruri3953
ベストアンサー
1
0
-
テストデータの作成
課題でDBへアクセスできるjavaプログラムを作成したのですが、提出の際、テストデータをもってくるように言われたのですが・・・テストデータの作り方がわかりません。 どなたか教えていただけないでしょうか?よろしくお願いします。
質問日時: 2008/11/12 14:28 質問者: totojima
ベストアンサー
8
0
-
PostgreSQLのtimestamp型で時間(分)を抽出したい
PostgreSQLのあるテーブルで「開始時刻」と「終了時刻」というフィールドがあり、timestamp with timezone(例:2008-07-31 07:00:00+09)でデータを持っています。 例えば、日付に関係なく13:00から15:00までのデータを抽出したい場合、SQLのWHERE句にはどのように記述すればよろしいのでしょうか?
質問日時: 2008/11/12 13:46 質問者: sugar416
ベストアンサー
3
0
-
売り上げ集計SQLが作れません
1つのTABLEに、1日の売上げ高を商品ごとに登録していくDBがあります。 簡単な構造は以下のとおりです。 日付 |A品売上額 |B品売上額 | 2008/11/01 |500000 |600000 | 2008/11/02 |450000 |800000 | 2008/11/03 |100000 |700000 | ・・・ 2008/11/30 |200000 |500000 | 2008/12/01 |300000 |100000 | <質問> それぞれの商品の1ヶ月売上高をSQLで抽出したいと思うのですが、Group byで何を指定したらいけるのかわからず困っています。 SQLで計算せずに抽出だけ行って、CGI側で計算するしかないのでしょうか? アドバイスお願いいたします。 <最初に考えたSQL(Group byがないためエラーになりました)> select sum(a),sum(b) from uriage where date between '2008/11/01' AND '2008/11/30';
質問日時: 2008/11/11 16:57 質問者: lovesberry
解決済
4
0
-
特定の値が入っているレコードを抽出する方法について
下記のテーブルがあったとして、 field2にグループAに該当する値と、グループBに該当する値が共に1つずつ入っている field1の値を抽出したいと思いました。 下記の場合ですと、その条件を満たす1, 3, 4, 6を抽出したいと思います。 グループA:1, 2, 3 グループB:101, 102, 103 ――――――――― |field1|field2 ――――――――― |1 |1 |1 |10 |1 |101 |2 |1 |2 |15 |2 |104 |3 |2 |3 |18 |3 |101 |4 |2 |4 |17 |4 |103 |5 |3 |5 |15 |5 |100 |6 |3 |6 |18 |6 |103 ――――――――― 使用バージョンは7.4.19です。 よろしくお願いします。
質問日時: 2008/11/10 01:05 質問者: iroha_168
ベストアンサー
1
0
-
最初のパスワードがわからなくなってしまいました・・・
PostgreSQLの最初に設定したパスワードを忘れてしまったのですが設定したパスワードを調べる方法はないでしょうか? pgAdminIIIではパスワードを入れるとアクセスできるのですが、コマンドプロントからするとなぜかアクセスできません。。。。 同じようにパスワードがわからなくなった方の質問・回答から以下の処理をしてみたのですが・・・ *************** pg_hba.confのエントリを編集し直します。 # TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD host all all 127.0.0.1/32 password この、passwordと書いているエントリの部分をtrustへ変更します そしてpostgreSQLを再起動し、postgresユーザーで全部いじれるようになります。 使えるようになったらtrustとした部分をpasswordにもどし、ネットワークへつないでください。 ***************** 上記の方法でやってみたのですがパスワードをtrustの状態にし、「psql postgres」 とうち、データベースへ接続しようとしたら psql: role "Owner" does not exist とエラーが出てしまうのです。何がいけないのでしょうか・・・ DBへの参考書やネットで調べたりしているのですが、ツールを使わずにDB操作を行おうとしたらコマンドプロンプトからDBへ接続し、sql文で操作するものだと思うのですが・・・・間違った解釈なのでしょうか・・・・
質問日時: 2008/11/07 01:35 質問者: totojima
ベストアンサー
2
0
-
passwordが入れられません・・・・
コマンドプロントにてDBへ接続するために「psql postgre」と入れたのですが Password : となるのですが、どのキーをたたいても入力することができません。エンターキーを押すと psql: FATAL: password authentication failed for user "postgre" と出るか paql: fe_sendauth: no password supplied と出てしまい何もできません。パスワードはコマンドプロントで入力できないのでしょうか?
質問日時: 2008/11/05 20:46 質問者: totojima
ベストアンサー
1
0
-
update
初心者の私にご教授願います。 phpにて情報を更新する画面を用意しており、そこから修正したのを updateさせているのですが、なぜか 全角を含む文字をupdateとするとエラーになっちゃいます。。 同じvarcharでも数字のみをupdateすれば、エラーはでません。 これは何か指定してあげる必要があるのでしょうか。 また、数字の前ゼロがupdateしたら消えちゃうのも 何か指定する必要があるのでしょうか。 不躾な質問で申し訳ありませんが ご回答お願いします。
質問日時: 2008/10/30 11:31 質問者: ten0000000
解決済
1
0
-
postgre 8.3のアンインストールについて
お世話になります。 PostgreSqlのインストールについて、嵌っています。 以前、PostgreSqlの8.3をインストールしていて、今回、新たに PostgreSqlの8.3をアンインストールして、同一バージョン(8.3)の インストールをしました。 インストールはうまくいくのですが、インストール時に設定した ユーザー名、とパスワードでPgAdminからデータベースにアクセス するとユーザーIDとパスワードが異なっているといった旨のエラー が出力されてしまいます。 アンインストール時の手順は以下の通りです。 (1)コンパネからプログラムの削除→postgresSql8.3を削除 (2)C:\Program Files\PostgreSQLを削除 (3)DOSからコマンドで、net user postgres /deleteを実行 上記の手順で、アンインストールを行い、postgresqlを再度インストール しているのですが、何度やってもうまくいきません。 以前、インストールした際は、問題なく出来たのですが、何が問題なのでしょうか? どなたか、お助け願えませんでしょうか?
質問日時: 2008/10/26 18:25 質問者: tiyojisaka
ベストアンサー
1
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【PostgreSQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLにて指定日付より前、かつ最新の...
-
新規作成したPostgresqlデータベー...
-
php、postgresqlを使ってwebアプリ...
-
列が存在しないと言われる
-
shellからpostgresqlへの変数の引き...
-
Windowsのファイル管理について教え...
-
plgファイルの開き方
-
postgreSQLのint型は桁数指定ができ...
-
自治会総会の成立要件について
-
postgresql についてです
-
終端クォート ' が必要です と出て...
-
ポストグレにあるExcelファイルを開...
-
PostgreSqlでFunctionの作成について
-
PostgreteSql Ver12で開発したプロ...
-
Windows10でQuickTimeがインストー...
-
エクセルVBAでUWSCを使う
-
postgresqlのtableのカラムの型をbi...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AND id...
-
tesuto 01
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定ができ...
-
postgresql についてです
-
SQLにて指定日付より前、かつ最新の...
-
自治会総会の成立要件について
-
エクセルで縦のカラムデータをカン...
-
SQLでUPSERTを一度に複数行やる方法
-
PostgreSqlでFunctionの作成について
-
plgファイルの開き方
-
select文の書き方「半角カナ+英+...
-
PostgreSQLについて教えてください ...
-
新規作成したPostgresqlデータベー...
-
postgresqlでのトランザクションに...
-
Windows10でQuickTimeがインストー...
-
列が存在しないと言われる
-
select文の書き方で分からないとこ...
-
Windows10がインストールできません...
-
エクセルVBAでUWSCを使う
-
shellからpostgresqlへの変数の引き...
-
postgresqlのtableのカラムの型をbi...
-
三段論法を真理値表で証明する
おすすめ情報