• 締切済み

データの間隔が知りたい時

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文はどういった構造になるのでしょうか? お詳しい方、参考サイトなどでも結構ですのでご教授宜しくお願いい致します。

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答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のバージョンは、何ですか? 最新の回で出た目と、直近の同じ目が出た回を見つけるだけでいいのですね?

rainday
質問者

お礼

ありがとうございます。 MySQLのバージョンは4.0.2でございます。

rainday
質問者

補足

すみません、補足させて頂きます。 直近だけでなく、例えばこの時点で第5回のdice1の1に対して3回と なりますが、第10回でdice1に1が出た場合、その時は5回となります。 そうして延々と間隔のみを捉えていきたいという事でございます。サイコロは最終的に10個ほど、回数は数千回となると思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの行間隔について。

    エクセルである程度のセルを統合してそこに文を入れます。セルの書式設定で「折り返して全体を表示する」にします。ここで入力した何行かは行間隔を変更することはできないんでしょうか?2003です。

  • それぞれの最新データーを抜き出したい

    | id | phonenumber |status | ----------------------- | 1 |1111111111111| OK | | 2 |2222222222222| OK | | 3 |3333333333333| NG | | 4 |1111111111111| NG | | 5 |2222222222222| OK | | 6 |3333333333333| OK | | 7 |1111111111111| NG | | 8 |1111111111111| OK | | 9 |3333333333333| NG | このようなSQL文があるとき、各phonenumberごとの最新のデーターを抜き出したいと思っています。 その時のSQL命令文を教えてください。 イメージ的には、 | 5 |2222222222222| OK | | 8 |1111111111111| OK | | 9 |3333333333333| NG | を抜き出すようなイメージになります。 ご教授お願いいします。

    • ベストアンサー
    • MySQL
  • C++で,配列に計算した値を入れたいです.

    C++で疑似乱数を発生させてサイコロをつくったのですが, サイコロを5回転がしたときのそれぞれの値をソートしたいと思い,配列に入れれば簡単だと考えてとりあえず配列に入れるプログラムを書いてみました. しかし,int array[i] = Dice(); のところでエラーが出てしまいます. ローベルのC++入門講座という本を使って独学で勉強している初心者なため,配列の使い方がいまいちよくわかりません. ご教授よろしくお願いします. 以下ソースコード #include <iostream> #include <cstdlib> #include <ctime> using namespace std; void InitRand(){ srand((unsigned int) time (NULL)); } int Dice(){ return rand() % 6 + 1; } int main(void){ int n = 0; //nはサイコロを転がす回数 cout <<"サイコロを何回転がしますか?" << flush; cin >> n; cout << "回転がします" << endl; InitRand(); for(int i = 0; i < n; ++i){ cout << Dice() << endl; int array[i] = Dice(); //エラーが発生する.i回目のサイコロの値をi番目の配列に入れたい. } }

  • エクセルの計算式を教えてください。(指定数字の出た回数&確率)

    皆様にお世話になります。 エクセル初心者なので計算式が解かりません。 指定数字の出た回数や、出た確率を表示させる事は可能なのでしょうか? サイコロに例えて質問します。 サイコロを10回振りました。A1~A10に出た目の数字((1)~(6))を入力しました。A11に『(1)の目だけの出た回数』 A12に『10回振って(1)の出る確率(%)』を表示させる事は可能なのでしょうか?  お手数ですが解かる方、教えて頂けますか? 

  • 母乳の授乳間隔

    3ヶ月の女の子のママです。 最初から母乳で育てているのですが、比較的夜寝てくれる子で 7時間とか9時間とか眠りつづけることがあります。 それはすごく助かるのですが、私のほうが朝方などにおっぱいが パンパンに張って痛くなってしまいます・・・。 この間は乳腺炎になりかけてしまい、助産院にマッサージに行ったところ 「最低1回は夜中に起こして授乳させなくてはダメ」と言われました。 で、朝方に目覚まし時計をセットして起きることにしたのですが 赤ちゃんが寝ているのに、わざわざ起こすというのもどうなんでしょう? ちなみに昼間は3~4時間間隔で、回数は1日6回くらいです。 お時間のあるときに教えてください。 よろしくお願いします。

  • C言語について  

    わからないのでよろしくお願いします。何回やってもうまく表示できません。 整数を入力し、入力された整数の数だけ「*」を横一列に表示し、最後に改行するプログラムを while 文を使って作りなさい。 但し、0または負の値が入力された場合は、「*」は表示せず、改行のみを表示すること。 ▼10が入力された場合の実行例 ********** #include<stdio.h> int main(void) { int n, kai; scanf("%d",&n); printf("\n nyuryoku=%d",n); while(0<kai){ kai=kai--; printf("*"); } kai=n; printf("\n"); }

  • SQL ServerとACCESSとのデータのやり取りについて

    下記の仕組みを検討しています。データをSQL Serverに置く。(安全性などを考慮して)Access側にも同じ構造のテーブルを用意してデータの編集・検索表示などをACCESSで行う。更新したデータをSQL Serverの該当テーブルにSQL文を実行して書き込む。書き込み方法は、両者を比較してSQL Server側にないレコードをInsert文にて追加する。(Not Inによるサブクエリを使用) お聞きしたいのは、ここで問題が発生していまして、 (1)単一主キーのテーブルの場合は動作しているが、複数主キーのテーブルの場合に、処理に非常に時間がかかる、もしくはエラーとなること(複数主キーでは処理できないものなのか) (2)上記のようなSQL ServerにデータをおいてAccess側でデータの編集・検索表示などを行う場合の良い仕組みについて 色々とHPを探し回ったのですが、今回のケースにずばり当てはまるものがなく、解決の糸口もなく苦戦しています。わかりにくい質問文になって申し訳ないですが、似たようなご経験の皆様方おられましたらアドバイス頂けないでしょうか。お願い致します。

  • 確率の問題の解き方が分かりません…

    問題文) 袋A(赤玉2個,白玉3個)と袋B(赤玉1個,白玉4個)がある。正しいサイコロを1回投げて2以下の目が出たとき袋Aから2回玉を取り出し、3以上の目が出たとき袋Bから2回玉を取り出す。 ただし、玉を取り出すときには1回取り出すごとに元に戻す。 問) 問1)サイコロを1回投げるとき、袋Bから赤玉を1回だけ取り出す確率 問2)サイコロを1回投げるとき、赤玉が取り出される確率 問3)サイコロを投げるとき、赤玉が取り出される回数Xの期待値を求める ※答えは規約分数□/○で 教授に質問などをしても専門的な回答しか得られず、 あまり解き方を理解できませんでした…

  • サイコロを繰り返し振って1の目がr回連続して出るまでの振る回数の期待値

    (1)1からmの目があるサイコロを繰り返し振るとします。 「1の目が」r回連続して出たら、振るのをやめるとします。 n回目にやめる確率、とやめる回数の期待値に興味を持っています。 また問題文を少し変更したものにも興味があります。 (2)1からmの目があるサイコロを繰り返し振るとします。 「どんな目でもいいので」r回連続して出たら、振るのをやめるとします。 n回目にやめる確率、とやめる回数の期待値。 (3)1からmの目があるサイコロを繰り返し振るとします。 「1の目が」総計でr回出たら、振るのをやめるとします。 n回目にやめる確率、とやめる回数の期待値。 (4)1からmの目があるサイコロを繰り返し振るとします。 「どんな目でもいいので」総計でr回出たら、振るのをやめるとします。 n回目にやめる確率、とやめる回数の期待値。 nに関する漸化式を立てようとしたのですが、ややこしくてうまくいきません。 ご存知の方は教えていただけないでしょうか? 写像で言うと次のような写像(数列)における性質を考えています。 f:{1,2,3,…}→{1,2,3,…,m}

  • 統計学の問題です。カイ二乗検定です。

    あるサイコロを振って6000回振って出た目の数値の度数分布表である。 目1 回数945回 目2 1045 目3 1050 目4 970 目5 950 目6 1040 このサイコロは「どの目も同程度に出やすいか」といえるかどうか、カイ二乗検定を用いて判断しなさい。 結果のみでなく、その判断にいたるまでの課程もまとめなさい。 以上が質問です。ルール違反とはおもいますが、自分は大学の卒業が掛かっている問題なので、どうか許してください。美術の大学生ですので、周りに解ける人がまったくおらず、又、何からやっていいのやら、分からず本当に困っています。少しでもいいので、どなたか助けてください。お願いします。