
10面体のサイコロを2個を振ってデータを入力しています。
結果が以下のようになったとします。
(kai=回数,dice1=サイコロ1,dice2=サイコロ2)
kai dice1 dice2
--+------+------
5回 1 5 ←最新回
4回 3 8
3回 5 9
2回 1 7
1回 10 5
----------------
とあった時、dice1の1は3回ぶりに出ていますので、ここで3回と
間隔を表示したいのですが間隔を出すSQL文の立て方に悩んでいます。
またdice2の5は1回目に出ていますが、3回目にdice1で5が出ていますので
この場合は2回と表示したいのですが。
間隔をつかみつつ、なおかつ2つの要素を比較しながらその間隔を導く
というSQL文はどういった構造になるのでしょうか?
お詳しい方、参考サイトなどでも結構ですのでご教授宜しくお願いい致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
とりあえず間隔だけ。
テストデータ
create table d (
kai tinyint,
dice1 tinyint,
dice2 tinyint
);
insert into d values(1,10,5);
insert into d values(2,1,8);
insert into d values(3,5,9);
insert into d values(4,3,7);
insert into d values(5,1,5);
insert into d values(6,2,5);
insert into d values(7,3,1);
insert into d values(8,4,2);
insert into d values(9,5,3);
insert into d values(10,1,4);
SQL文
select a.kai,a.dice1,a.kai-max(b.kai) from d as a,d as b
where a.kai > b.kai
and a.dice1 = b.dice1
group by a.kai
;
未出現のデータは出てきませんが。
出現回数は回数を数えるだけなのでそれほど難しくないでしょう。
一緒に結果を出すことは考えないほうがいいと思います。(やろうと思えば出来ないことは無いと思いますが)
No.2
- 回答日時:
MySQL 4.0系だと、サブクエリ等も使えないので、1回のクエリでは無理ですが、それでもいいですか?
最新が第5回で、1と5の場合は、1の間隔としては3を返す。
最新が第10回で、1が出て、第6~9回に1が出ていない場合は、1の間隔として5を返す。
つまり、最新の回から見て、もっとも近い同じ目が出た回数までの間隔を見つければいいのですよね?
それとも、第10回の場合、第5回までで間隔が5、さらに遡って第2回までの間隔が3と、すべて出したいと言ってますか?
No.1
- 回答日時:
MySQLのバージョンは、何ですか?
最新の回で出た目と、直近の同じ目が出た回を見つけるだけでいいのですね?
この回答への補足
すみません、補足させて頂きます。
直近だけでなく、例えばこの時点で第5回のdice1の1に対して3回と
なりますが、第10回でdice1に1が出た場合、その時は5回となります。
そうして延々と間隔のみを捉えていきたいという事でございます。サイコロは最終的に10個ほど、回数は数千回となると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- Visual Basic(VBA) リストポックスへの抽出方法 1 2022/08/10 17:58
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- 統計学 サイコロの確率問題。なぜ罠にはまってしまうのか? 10 2023/08/26 13:49
- 数学 至急!!大学2年の女子です。この高校レベルの問題が分からないので教えてください!お願いしますm(_ 2 2022/11/11 22:10
- 英語 da da da の意味は 3 2023/03/08 10:00
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JOINで1つのテーブルに空白があ...
-
INSERT文でフィールドの1つだ...
-
効率の良い検索方法が分かりま...
-
'internal' のシステム メモリ...
-
DB2でのロック
-
count集計の結果が0の場合でも...
-
SQLについて教えて下さい with(...
-
SQLを作ったのですがうまくいき...
-
結合? コピー? 初歩的な質...
-
MySQLで複数のSELECT文を1文に...
-
グループ毎の最大値を持つデー...
-
SQL server改行コード
-
SQLServerでの切り上げ処理
-
複数テーブルからデータを取り...
-
差し込み後、元データを変更し...
-
エクセルの関数について教えて...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
VMwareがCDドライブを認識する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INSERT文でフィールドの1つだ...
-
SQLでフィールドの順番を変更し...
-
count集計の結果が0の場合でも...
-
'internal' のシステム メモリ...
-
JOINで1つのテーブルに空白があ...
-
SQL server改行コード
-
SQLについて教えて下さい with(...
-
グループ毎の最大値を持つデー...
-
「重複を間引いた数」をcountし...
-
SQLServerでの切り上げ処理
-
自作関数の方がパフォーマンス...
-
Unionの結果全体をOrder By し...
-
MySQLで複数のSELECT文を1文に...
-
文字列変換ついて
-
SQLでの計算結果がおかしい
-
DB2でのロック
-
SQL Server 2005 Express で CD...
-
一つのSQLで実行できるでしょう...
-
勉強でSNSを作っています。
-
データの間隔が知りたい時
おすすめ情報