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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

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

Q&A

解決済

1回答

826閲覧

SQLで合計が○○になったときのタイミングのレコードを取得したい

touwaerio

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

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

0グッド

0クリップ

投稿2021/06/23 06:27

編集2021/06/23 06:30

MySQL5.7になります。

下記のようなテーブルがあった場合に

ID数量日時
1102021/06/23 01:00
2202021/06/23 02:00
3302021/06/23 03:00
4402021/06/23 04:00

ID昇順で数量の合計がが60以上になったタイミングのレコード
上記のテーブルで言えばIDが3のレコードを取得したいのですが
こういったことは可能でしょうか?

(レコードを順番に処理するような形になるので自分としては無理なのかなと思いつつも
ご意見をいただきたく。。。????‍♂️)

恐れ入りますが、よろしくおねがいします。

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

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

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

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

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

yambejp

2021/06/23 06:35

レコードの順番を一意に確定できるなら可能です ID順とか日時順とか・・・ IDはおそらくユニークですが日時がユニークを担保できるか次第ですね
touwaerio

2021/06/23 06:45

ご返信ありがとうございます 順番は一意に保てます。 すみません例では日時は分までにしていましたが、 ミリ秒6桁まで保持していて重複することはない状態になります。
yambejp

2021/06/23 06:55

id順なら問題ないです 日時順で処理する場合はミリ秒の場合はdatetimeではなくint型ですかね・・・ ユニーク属性などなんらかの一意性の保証があれば問題有りません。
sazi

2021/06/23 07:54

MySQLのバージョンは何ですか?
guest

回答1

0

ベストアンサー

SQL

1create table tbl(id int primary key,val int,dt datetime); 2insert into tbl values 3(1,10,'2021-06-23 01:00'), 4(2,20,'2021-06-23 02:00'), 5(3,30,'2021-06-23 03:00'), 6(4,40,'2021-06-23 04:00'); 7 8select min(id) as id from tbl as t1 9where (select sum(val) from tbl where id<=t1.id)>=60

投稿2021/06/23 06:41

yambejp

総合スコア116724

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

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

touwaerio

2021/06/23 08:05 編集

おおお、ありがとうございます。 なるほど相関サブクエリで順に計算していき、 指定のID以下の合計数量が60以上になるIDの中で 一番小さいIDを取り出すといった事であってますでしょうか? ご回答ありがとうございます!????‍♂️
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問