質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

2226閲覧

PostgleSQLで、取得データのサイズのみを出力する方法

tesgakr

総合スコア6

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/02/28 00:30

編集2020/02/28 02:08

PostgleSQLで、取得データのサイズのみを出力する方法

最終抽出データがかなり重いトランザクションデータのため、
全件出力せずサイズ(MB/GB)のみ知りたいです。
一次テーブルを作成&格納しテーブルサイズを調べる方法を試しましたが、
うまくいきません。
上記以外の方法などでももし何か方法がありました教示ください。

一時テーブルを試す方法では、取得トランザクションデータをWITH句で絞り込み
最後に一時テーブルを作成しようとしていたのですがCREATEがエラーとなります。

___
WITH tar_user_tmp AS
(
-- WITH句①
)
,tar_user_year AS
(
-- WITH句②
)
,tar_user AS
(
-- WITH句③
)
,tar_juser AS
)
SELECT t1.*
FROM
-- ここで取得トランザクションデータを取得
)
-- 以下文法エラー
CREATE temp TABLE test_table AS
SELECT *
FROM tar_juser WHERE 1=2;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

workaholist

2020/02/28 01:01

「うまくいきません」とは何をしてどうだったからうまくいかないとおっしゃっているのでしょうか。
tesgakr

2020/02/28 01:20

回答ありがとうございます。 一時テーブルを試す方法では、取得トランザクションデータをWITH句で絞り込み 最後に一時テーブルを作成しようとしていたのですがCREATEがエラーとなります。 ___ WITH tar_user_tmp AS ( -- WITH句① ) ,tar_user_year AS ( -- WITH句② ) ,tar_user AS ( -- WITH句③ ) ,tar_juser AS ) SELECT t1.* FROM -- ここで取得トランザクションデータを取得 ) -- 以下文法エラー CREATE temp TABLE test_table AS SELECT * FROM tar_juser WHERE 1=2; 初歩的な質問で大変申し訳ありませんが、どうぞよろしくお願いいたします。
Orlofsky

2020/02/28 06:30

あらかじめ create table tar_juser がないと withは使えません。 SQL入門レベルの学習ができていないのです。
Orlofsky

2020/02/28 06:31

ここの掲示板は質問を修正できるのはわかっていますか?
guest

回答3

0

ベストアンサー

withは、create tableの前では無くて、selectの直前です。

SQL

1CREATE temp TABLE test_table AS 2with XXX as ( 3 select4) 5SELECT * 6FROM tar_juser WHERE 1=2;

投稿2020/02/28 06:24

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tesgakr

2020/03/10 05:12

回答ありがとうございます! テーブルを作成しサイズを確認することができました。 ありがとうございました。
guest

0

無駄打ちselectですが、おおよその大きさはわかります

psql

1psql database -c"\copy (SELECT * FROM tar_juser WHERE 1=2) to stdout" |wc -c

Linux postgresV9以上の例ですが

投稿2020/02/28 03:13

amura

総合スコア333

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

最終抽出データがかなり重いトランザクションデータのため、

全件出力せずサイズのみ知りたいです。

サイズの意味がレコード件数の意味なら、
SELECT COUNT(*) ...

CREATE TABLE, CREATE INDEX, 実際のSQLを EXPLAIN — 問い合わせ文の実行計画を表示する と共に提示できた方が解決は早いかと。

投稿2020/02/28 00:56

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tesgakr

2020/02/28 01:43

回答ありがとうございます。 ファイルサイズについて説明が不足し申し訳ありません。 求める結果はXXMBおよびXXGBのサイズ形式なのですが、 列行で概算的に見積が出来たりするものでしょうか。
Orlofsky

2020/02/28 01:58

大容量の画像とかLOBなどが大きいと問題になることがありますが、誤解されないように質問を訂正された方が良いです。 回答に書いた内容も質問に追記してください。対応方法が理解できなければ有償で人を雇いましょう。
Orlofsky

2020/02/28 02:03

ハードウェアやネットワークのトラフィックでレスポンスは全然ちがいますから、見積もりは期待できないでしょう。この業界は1トンのトラックで良いよ、って言われて現場に行ったら10トンの荷物のあったなんてことがよくある世界で困りものです。
tesgakr

2020/02/28 02:09

ご回答ありがとうございます。初心者なもので色々と不足・不勉強があり申し訳ありません。 ご指摘の通り回答にも追記させていただきました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問