PostgreSQL

全1193件中21~40件表示
  • psycopg2経由とpsql経由、違いますか?

    Python3で、psycopg2を使用してPosgtreSQLに接続しようとしています。(Windows10環境です) 実際にpythonプログラムでinsertしてデータを登録したりしているのですが、 PostgreSQLでコマンドプロンプトからpsqlを使って、同じデータベースにアクセスしているのですが、データが登録できていません。 すべて同じPC上で動作させているのですが、 Python3でpsycopg2経由でアクセスしているデータベースと psql経由でアクセスしているデータベースが別という事はあるでしょうか? (もちろん同じデータベース名でアクセスしています。) 何かアドバイス頂けないでしょうか、どうぞよろしくお願いします。

  • SQL select 2つの日時データの結合

    SQLで2つの日時データについて、片方の日時に一番近い別データのレコードを結合して抜き出したいです。 <Table1> 日時A data1 2020/07/01 10:00:00 1000 2020/07/01 11:00:00 1000 <Table2> 日時B col1 2020/07/01 9:50:00 AAA 2020/07/01 10:05:00 BBB 2020/07/01 11:10:00 CCC 上記2つのようなデータがある場合、下記のようなSELECT結果を取得したいです。 日時A data1 日時B col1 2020/07/01 10:00:00 1000 2020/07/01 9:50:00 AAA 2020/07/01 11:00:00 1000 2020/07/01 10:05:00 BBB この場合、どのような構文を使用したらよいでしょうか? お手数ですが、よろしくお願いいたします。

  • PostgreSQLログイン中にOSコマンド

    Oracleだと、SQLplusログイン中に、!をコマンドの前につければ、OSコマンドが使えます。 PostgreSQLで、ログイン中には同じような方法はありますか? copyコマンドで、CSVファイルに出力されたか確認する場合、lsコマンドでファイルの存在を確認したいのですが。 PostgreSQL初心者です。 ご存知の方いらっしゃいました、宜しくお願いします。

  • psqlでファイルに記載した命令を実行できません。

    psqlを使っています。 ファイルに10行ほどのinsert命令を書いて、 psqlにて「\i /Users/・・・・省略(ファイルパス)・・・・)/aaa.sql;」 を実行するとエラーがでて実行できません。 /Users/・・・・省略(ファイルパス)・・・・)/aaa.sql:1: error: invalid command \rtf1 ・ ・ psql:/Users/・・・・省略(ファイルパス)・・・・)/aaa.sql:17: error: invalid command \'7b psql:/Users/・・・・省略(ファイルパス)・・・・)/aaa.sql:18: error: invalid command \'b7 psql:/Users/・・・・省略(ファイルパス)・・・・)/aaa.sql:18: ERROR: syntax error at or near "{" LINE 1: { こんな感じでエラーがでてしまいます。 命令文を1行ずつ手打ちで実行するとできるのですが、なぜでしょうか。 同じような経験のある方など教えていただけるとありがたいです。

  • postgreSQL11の挙動

    クライアント側で作成したデータベースがサーバ側では見えないのですが、そういうものですか?

  • SQLのWHERE句を条件によって追加したい

    SQLのWHERE句にパラメータで渡された値がnullでない場合は条件に 含めるようにしたいのですが、書き方が分かりません。 CASEを使って書いてもエラーになってしまいます。 SELECT 項目1 ,項目2 FROM テーブル WHERE 条件1 = パラメータ1 AND 条件2 = パラメータ2 -- パラメータ3がnullでない場合は下記条件を付けたい AND 条件3 = パラメータ3 使っているのはpostgresqlです。 よろしくお願いします。

  • 最新日のレコードと合計の抽出

    作業テーブル(作業者ID、作業日、作業時間)から、作業者ID毎に指定した作業日のレコード、および作業日を含む月の合計を抽出するSQLを考えております。 DBへのアクセス回数を減らすようにとの事で、1つのSQL文での抽出を検討しておりますが、いまいち上手くいかない状況です。 アドバイスを頂けると非常に助かります。 よろしくお願い致します。

  • selectでデータの中身を見れない

    デスクトップ上にあるCSVファイルのデータをpostgresqlに\copyで取り込んだのですが、取り込んだデータをselectで見ることができません。 「sh: more: command not found」と表示されてしまいます。 そもそもsh:とmore:の意味をネットでも調べたのですが、よく分かりませんでした。command not foundはパスが通っていないらしいと言うのは分かりました。 どうすればcsvで取り込んだデータを見ることができるのか、どなたか教えていただけないでしょうか。

  • postgresql 合計値 PHP

    失礼します現在テーブルからあるキーのフィールドの合計値を出していきたいのですがうまくいきません 例 テーブル名(test_tbl) user | count ----------------- aaaa | 6 bbbb | 5 bbbb | 6 aaaa | 4 cccc | 9 とあった場合 aaaa | 10 bbbb | 11 のように出力がしたく、SQLを作成しました。countが文字列で格納されているのでto_numberを使用しました $sql = "SELECT user, SUM(to_number(count)) FROM test_tbl GROUP BY user HAVING SUM(to_number(count)) >= 10"; しかしエラーが出てしまいます。どの部分が間違っているのでしょうか? 宜しくお願い致します。

  • DBの全ユーザーテーブルに対するtruncate

    PostgreSQLを勉強中の者です。 データベースの全ユーザーテーブルに対して、個別にtruncateをかけるいい方法を探しています。  \pset pager  \dt 以上のコマンドを実行して、テーブル一覧を表示できることをはわかったのですが、ここから先の妥当なやり方がわかりません。 リダイレクトして、テキストエディタで加工して、シェルのようなもので流し込む・・・のような形になるのでしょうか? 実例も含めて教えていただけると助かります。 また、truncateされたことの上手い確認方法もあれば御教示下さい。 よろしくお願いします。

  • 変体仮名を登録したいのですが。

    名前に変体仮名を使っている人がいます。エクセルに、その方の名前を入力したいのですがマイクロソフトのIMEには入っていないようです。皆さんはどうやって入力していますか。私のPCはWindows10homeの64ビットです。Unicodeの最新版には入ったと聞いたのですがインストール方法がわかりません。それから、koinnというところからフリーソフトをインストールしようとしたのですが、身代金要求のプログラムが添付されているようで私のセキュリテーイソフトが拒否しました。宜しくお願いします。

  • postgres 強制的に連番を取得する事は可能?

    postgres 強制的に連番を取得する事は可能ですか? 例えば、IPアドレスの最後の桁と用途を管理するテーブルがあるとします。 table_a ( item1 integer, -- IPアドレスの最後の桁 item2 character varying -- 用途 ) item1 item2 ----- ----- 1 デフォルトゲートウェイ 3 複合機 11 サーバー1 12 NAS 21 A氏のPC 22 B氏のPC 23 C氏のPC これを0から255まで空きを含めて一覧で表にしたいという場合、何か方法ありませんか? item1 item2 ----- ----- 0 1 デフォルトゲートウェイ 2 3 複合機 4 5 6 7 8 9 10 11 サーバー1 12 NAS 13 14 15 16 17 18 19 20 21 A氏のPC 22 B氏のPC 23 C氏のPC : 255 以下の2つは思いつきますが、あまりやりたくありません。 ・1件1件ぐるぐる回してSQLを発行する。 ・0から255の値を固定で持ったテーブルを別途作成し、それに対してジョインする。 1つのSQLで発行する方法はありませんか?

  • SQL カウント 以上 以下

    失礼します。現在ある日付の範囲から3回以上、4回以下(main_id)が重複しているデータを抽出したいのですが、日付の範囲と3回以上までは出来たのですが、 4回以下という条件の追加が上手くできません よろしければご教授お願い致します。 以下に指定日時範囲から3回以上まで作成した例を記載します。 SELECT * FROM old_テーブル名 where 日時 between '2017-08-01' and '2017-08-10' AND (main_id) in (SELECT main_id FROM テーブル名 GROUP BY main_id HAVING COUNT(*) >= 3); 3の後に AND COUNT(*) <= 4とやってのですが上手くいきませんでした

  • postgresql primary_key

    失礼します。 今回重複データの削除等をしたテーブル 例: ------------------------- id | name | 1 | hoge | 8 | piyo | 12 | temp | ------------------------- このようなserial型でprimary_keyに設定したidの値を1,2,3と振り直したいです。 探してみるともしかしたらそのような事が不可能なのかもと思って投稿しました。 宜しくお願い致します。

  • java からpostgreSQLを操作

    java を使ってpostgreSQLを操作しようとしていますができません わかる人がいたら教えてください。 PostgreSQL JDBC Driver をダウンロードして↓ "C:\PostgreSQL\jdbc\postgresql-42.1.4.jar" javaのコードを書いたファイルを保存して↓ "C:\PostgreSQL\java\src\DBConnect1.java" コマンドプロンプトからコンパイルして↓ C:\PostgreSQL\java\src> C:\PostgreSQL\java\jdk\bin\javac DBConnect1.java クラスファイルができて↓ "C:\PostgreSQL\java\src\DBConnect1.class" プログラムを実行すると C:\PostgreSQL\java\jdk\bin\java -cp C:\PostgreSQL\jdbc\*;. DBConnect1 下記のようなエラーメッセージが表示されます↓ . : 用語 'DBConnect1' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されませ ん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してくだ さい。 発生場所 行:1 文字:60 + C:\PostgreSQL\java\jdk\bin\java -cp C:\PostgreSQL\jdbc\*;. DBConnect1 +                ~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (DBConnect1:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

  • Postgreresqlで「 \ 」が打てない

    PostgreresqlのSQLshellで、半角バックスラッシュ(\)を入力すると、アンダースコア( _ )に自動変換されてしまって入力できません。そのため、SQLshellで「\q」などのバックスラッシュを伴うコマンドが認識されません。  ただ、ターミナルやその他のアプリケーション内では、バックスラッシュの入力ができます。つまり、SQLshell内のみで入力ができない状態です。  文字エンコードの問題かなとも思いますが、うまい具合に解決できずに困っています。ご回答宜しくお願いします。  また開発環境は、MacOSでELcapitaを使用し、PostgresSqlは9.6を使用しています。

  • PostgreSqlのinterval型のフォーマ

    PostgreSqlのinterval型の項目に"1 day 05:19:00"という値が入っています。 これを29:19という時分で、 もしくは時を単独で29(時間)という数値に変換する方法を教えてください SELECT item1 -- "1 day 05:19:00" , to_char(item1,'HH:MI') -- "05:19" , to_char(item1,'HH24:MI') -- "05:19" , to_char(item1,'HH') -- "05" , to_char(item1,'MI') -- "19" FROM (select '1 day 05:19:00'::interval AS item1) query1

  • postgresの関数内で変数からの時間の足し算

    postgresの関数内で変数からの時間の足し算の仕方を教えてください。 DECLARE result timestamp with time zone; l_minuteinteger := 15; BEGIN result := current_timestamp + '15 minute'; RETURN result; END; このように 直接「 + '15 minute'」を足す方法は分かるのですが、 例えば、上記のユーザー変数l_minuteを使っての足し算がの仕方が分かりません。 よろしくお願いします。

  • Postgreの日付関数に関して教えてください。

    Postgreの日付関数に関して教えてください。 表9.30 日付/時刻関数の例を実行していますが、 make_ で始まる関数がすべて失敗します。 PostgreSQL 9.6.2文書 9.9. 日付/時刻関数と演算子 https://www.postgresql.jp/document/9.6/html/functions-datetime.html 表9.30 日付/時刻関数 select age(timestamp '2001-04-10', timestamp '1957-06-13') select age(timestamp '1957-06-13')  : : select make_date(2013, 7, 15) select make_interval(days => 10) select make_time(8, 15, 23.5) select make_timestamp(2013, 7, 15, 8, 15, 23.5) select make_timestamptz(2013, 7, 15, 8, 15, 23.5) make_dateの失敗のメッセージ ERROR: function make_date(integer, integer, integer) does not exist LINE 1: select make_date(2013, 7, 15) ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. ********** エラー ********** ERROR: function make_date(integer, integer, integer) does not exist SQLステート:42883 ヒント:No function matches the given name and argument types. You might need to add explicit type casts. 文字:8 何が悪いのでしょうか。

  • ポスグレで指定した中で最大のレコードを1件取得する

    ポスグレで指定した中で最大のレコードを1件取得する方法を教えてください。 下記の項目を持つテーブルがあるとします。 ・部署 ・氏名 ・日付 ・連番 ・内容 KEY(部署,氏名,日付,連番) 部署と氏名を指定した中で直近のレコードを1件だけ取得したいです。 例えば select * from テーブル where 部署 = 値 and 氏名 = 値 order by 日付 desc ,連番 desc で頭の1件を抜ければよいのですが、 limit 1を指定しても、どうやらorder byより先にlimitがかかっているようで、並び替えた後の最初の1件をとれません。 また、 ソート項目が1つだけなら select * from テーブル where 部署 = 値 and 氏名 = 値 and 日付 = (select max(日付) from テーブル t1 where t1.部署 = 値 and t1.氏名 = 値) という事もできますが、 日付が最大の中での連番が最大というのはさらに一手間必要です。 何か良い方法はありませんか? 全件持ってきた後にアプリ側で最初の1件だけ使うのではなく、postgres内で1件にしてアプリ側に渡したいです。