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

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

新規登録して質問してみよう
ただいま回答率
85.46%
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

解決済

1回答

1243閲覧

SQLにて、商品コードが同じだった場合、数値を合計する処理について(日毎テーブルから月毎ランキングを作る)

yowayowanitohei

総合スコア31

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クリップ

投稿2021/04/26 03:23

編集2021/04/26 04:31

日毎に売り上げを記録しているテーブルから売上金額の月毎のランキングを作りたいと考えております。

Daily_sales
ID|商品コード|商品名|売上|日付
01|A001  |りんご|520 |01/01
02|A002  |ラムネ|110 |01/01
03|A001  |りんご|230 |01/02
04|A003  |コーラ|900 | 01/02
05|A002  |ラムネ|320 |01/03

1月の売り上げランキング
商品コード|商品名|売上
A003  |コーラ|900
A001  |りんご|750
A002  |ラムネ|430

「期間が●月以内のデータを取得し、商品コードが一致する場合に売り上げを合計する」クエリの
書き方がわからず困っております。。。

方法や参考にできるサイトなどご存知でしたらお伺いしたいです。

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

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

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

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

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

sazi

2021/04/26 04:08

> IDが一致する場合に売り上げを合計する 商品コード単位の売上を希望しているように見えるんですけど、IDが一致するとは何ですか?
yowayowanitohei

2021/04/26 04:32

saziさん いつもありがとうございます。 ご指摘の通り、商品コード単位の売り上げを抽出したいと考えております。 質問文修正させていただきました。 お手数をおかけしますが、どうぞよろしくお願い致します。
sazi

2021/04/26 04:49

何が分からないのですか? 集計することは出来ていて、抽出の条件が分からないのですか? 集計するのはgroup byを使用しますが、それが分からないという事はないでしょうし。
yowayowanitohei

2021/04/27 00:02

saziさん 返信が遅くなり申し訳ないです。 抽出条件がわかっていませんでした。。。 ご回答いただいた内容で無事抽出できました!
guest

回答1

0

ベストアンサー

期間内のデータの集計なら以下の様になります。
※以下は例として1月度

SQL

1select 商品コード, 商品名, sum(売上) as 月売上 2from Daily_sales 3where 日付 >= '2021/01/01' and 日付 < '2021/02/01' 4group by 商品コード, 商品名 5order by sum(売上) desc

期間が複数月に跨る場合は、以下のように月度が必要になります。

SQL

1select 商品コード, 商品名, to_char(日付, 'yyyy/mm') as 月度, sum(売上) as 月売上 2from Daily_sales 3where 日付 >= '2021/01/01' and 日付 < '2021/03/01' 4group by 商品コード, 商品名, to_char(日付, 'yyyy/mm') 5order by to_char(日付, 'yyyy/mm'), sum(売上) desc

投稿2021/04/26 04:53

編集2021/04/27 01:20
sazi

総合スコア25206

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

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

yowayowanitohei

2021/04/27 00:04

saziさん いつも丁寧ないつも丁寧なご回答ありがとうございます。 上記内容で希望の動作確認できました。
sazi

2021/04/27 01:22

解決してなによりです。 解決済みにしておいて下さいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問