🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PostgreSQL

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

Q&A

解決済

1回答

2295閲覧

PostgreSQLの条件で『レコードの横計』を入れたい。

退会済みユーザー

退会済みユーザー

総合スコア0

PostgreSQL

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

0グッド

0クリップ

投稿2019/09/18 11:10

表題の件の通りなのですがPostgreSQLで縦計を取得するSQLは見かけるのですが、
横計を出すやり方がわかりません。
どなたかご教授願えますでしょうか。

テーブルは下記の通りで、『みかん、りんご、ばなな、の金額の合計が600円より高い』の火曜日と木曜日のレコードを取得したいと思っております。
イメージ説明
下記のようなSQLを作成しましたが駄目でした。

PostgreSQL

1SELECT * FROM fruits_price WHERE SUM('みかん'+'りんご'+'ばなな') > 600

どなたかご教授願えませんでしょうか。
ご回答よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

SQLではシングルクォートで囲むと文字列になります。

SQL

1 2SELECT * FROM fruits_price WHERE SUM('みかん'+'りんご'+'ばなな') > 600 34SELECT * FROM fruits_price WHERE みかん + りんご + ばなな > 600 5 6 ↓ 更に変更 7 8SELECT * FROM fruits_price WHERE TO_NUMBER(みかん) + TO_NUMBER(りんご) + TO_NUMBER(ばなな) > 600

CREATE TABLEを提示した方が適切なコメントが付き易いです。

投稿2019/09/18 11:19

編集2019/09/18 11:42
Orlofsky

総合スコア16417

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

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

退会済みユーザー

退会済みユーザー

2019/09/18 11:30

ご回答ありがとうございます。 上記を試してみてエラーが発生し気が付いたのですが、型がtextとなっておりました。 その場合はどのように書けばよろしかったでしょうか。立て続けに質問してしまってすいません。 先ほど 『SELECT * FROM fruits_price WHERE SUM(TO_NUMBER('みかん')+TO_NUMBER('りんご')+TO_NUMBER('ばなな')) > 600』とし、INT型に変換しようとしましたが、『TO_NUMBER』でエラーが出ております。 立て続けで申し訳ございませんがご回答願えますでしょうか。 どうぞよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/09/18 11:35

CRATE TABLEを提示しておらず申し訳ございませんでした。 該当するものは全てtextの型で修飾語はなしです。よろしくお願いいたします。
Orlofsky

2019/09/18 11:48

ちゃんと読んでください。 SQLではシングルクォートで囲むと文字列になります。
退会済みユーザー

退会済みユーザー

2019/09/18 11:55

申し訳ございませんでした。 text型だったので取り出す時は、シングルクオートかと思っておりました。 お手を煩わせてしまって申し訳ございません。 設計した人かどうかはわかりませんが、今のシステムを設計した人は既に全員いません。。。
Orlofsky

2019/09/18 11:59

データ量が増えるシステムならどんどん遅くなります。まともな能力がある人を雇ってシステム全体を作り直したほうが、まともなパフォーマンスを維持できて安上がりです。 テーブル設計して辞めていった人を詐欺罪で刑事告発しては?
退会済みユーザー

退会済みユーザー

2019/09/18 12:00

エラーが出ておりましたが、第二引数に'99G999D9S'を挿入し to_number(りんご,'99G999D9S')+to_number(ばなな,'99G999D9S')のように入力したら 出来ました。ありがとうございました。 URLの方も確認させて頂きます。 申し訳ございませんでした。 ありがとうございました。
Orlofsky

2019/09/18 13:16

99G999D9S って 12,345.6+ みたいにデータが入っている、ってこと?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問