毎朝、仕事中に起きている会議があります。誰がどのような順序で話すかを決定する方法として、最も近いオブジェクトを部屋の周りに投げる。やや奇妙なことに、私はこれらのスローについていくつかのデータを得ることが楽しいかもしれないと決めました。だから毎朝、私はスローの序列を覚えています(おそらく一度ボールだったボール/奇妙なスポンジオブジェクトを落としてしまった人や、すでにやっている人に投げてしまった人、 、そしてテーブルにこのデータを記録します。SQLクエリ - データのグループ化
+---------+-----+------------+----------+---------+----------+--------+--------------+
| throwid | day | date | thrownum | thrower | receiver | caught | correctthrow |
+---------+-----+------------+----------+---------+----------+--------+--------------+
| 1 | 1 | 10/01/2012 | 1 | dan | steve | 1 | 1 |
| 2 | 1 | 10/01/2012 | 2 | steve | alice | 1 | 1 |
| 3 | 1 | 10/01/2012 | 3 | alice | matt | 1 | 1 |
| 4 | 1 | 10/01/2012 | 4 | matt | justin | 1 | 1 |
| 5 | 1 | 10/01/2012 | 5 | justin | arif | 1 | 1 |
| 6 | 1 | 10/01/2012 | 6 | arif | pete | 1 | 1 |
| 7 | 1 | 10/01/2012 | 7 | pete | greg | 0 | 1 |
| 8 | 1 | 10/01/2012 | 8 | greg | alan | 1 | 1 |
| 9 | 1 | 10/01/2012 | 9 | alan | david | 1 | 1 |
| 10 | 1 | 10/01/2012 | 10 | david | dan | 1 | 1 |
| 11 | 2 | 11/01/2012 | 1 | dan | david | 1 | 1 |
| 12 | 2 | 11/01/2012 | 2 | david | alice | 1 | 1 |
| 13 | 2 | 11/01/2012 | 3 | alice | steve | 1 | 1 |
| 14 | 2 | 11/01/2012 | 4 | steve | arif | 1 | 1 |
| 15 | 2 | 11/01/2012 | 5 | arif | pete | 0 | 1 |
| 16 | 2 | 11/01/2012 | 6 | pete | justin | 1 | 1 |
| 17 | 2 | 11/01/2012 | 7 | justin | alan | 1 | 1 |
| 18 | 2 | 11/01/2012 | 8 | alan | dan | 1 | 1 |
| 19 | 2 | 11/01/2012 | 9 | dan | greg | 1 | 1 |
+---------+-----+------------+----------+---------+----------+--------+--------------+
を私は今、このため、データの価値はかなりの数日を持っている、と私は自分の目的のためにその上にいくつかのクエリを実行するために始めている(私はしましたチームの他の人にはまだ言わない...結果に影響を与えたくない)。私は問題なしでいくつかをやったが、私は特定の結果を出そうとしている。
私が探しているのは、各人がボールを受け取る最後のチームメンバーであった回数です。さて、あなたがテーブル上で見ることができるように、欠席などのために、1日あたりの投球数は常に一定ではないので、私は投手によってレシーバーを選択するだけではありません。上記データの場合
、それが戻ってくる:
+--------+-------------------+
| person | LastReceiverTotal |
+--------+-------------------+
| dan | 1 |
| greg | 1 |
+--------+-------------------+
私はこれまでのところ持っている:
SELECT MAX(thrownum) AS LastThrowNum, day FROM Throws GROUP BY day
は今、これはいくつかの有用なデータを返します。私は毎日最高のスラムを手に入れます。私がする必要があるのは、この値の受信者を取得し、それから受信者によってグループ化されたカウントを取得して回答を得ることだけです。しかし、これは機能しません。なぜなら、結果セットは、集約関数を使用した上記の問合せのためであるとは思われないからです。
正直なところ、データを格納するテーブルを設計する方がはるかに良い方法があると思われますが、同様に、この情報をそのままテーブルで取得する方法もあります。私はそれがどのように機能するのか理解できません。これがどうやって行なわれるのか誰にも分かりますか?
真剣に:いくつかの作業を行ってください! ;-) –
@JonEgertonこれは、会社が現時点で持っているかもしれないどんな小規模な仕事よりもはるかに重要です... *ブラウザウィンドウを最小化します* – Hecksa
@Hecksa:これはMySQLですか? –