生物学者とmySQL(バージョン5.7.13)がここで初心者です。私は現在、私の周りを包み込むことができない課題に直面しています。私は、時間とともに個人の目撃情報を記録したテーブルを持って、データからの抽出物は、次のようになります。サブセットの列をmysqlのサブセット内の他の列の最大値に基づいて選択する
Table "tblSightings"
+---------------+---------+-----------+---------------------+
| id_individual | project | id_survey | Surveydatetime |
+---------------+---------+-----------+---------------------+
| A | 1 | S1 | 2016-11-18 15:54:00 |
| B | 1 | S1 | 2016-11-18 15:54:00 |
| C | 1 | S1 | 2016-11-18 15:54:00 |
| A | 1 | S2 | 2016-11-06 13:33:00 |
| B | 1 | S2 | 2016-11-06 13:33:00 |
| X | 1 | S2 | 2016-11-06 13:33:00 |
| A | 2 | S3 | 2015-05-01 12:48:00 |
+---------------+---------+-----------+---------------------+
私は何をしたいのは、個々の最も最近の目撃情報を一覧表示し、クエリを作成することです( id_individual + projectの最高のSurveydatetime)とそれに対応するid_surveyとその目撃中に一緒に目撃された他の全ての個人(GROUP_CONCAT(id_individual))と一緒に表示されます。例えば、データに基づいて、所望の結果が、ここで次のようになります。
+---------------+---------+---------------+------------+---------------------+
| id_individual | project | id_survey | associates | latest |
+---------------+---------+---------------+------------+---------------------+
| A | 1 | S1 | B C | 2016-11-18 15:54:00 |
| B | 1 | S1 | A C | 2016-11-18 15:54:00 |
| C | 1 | S1 | A B | 2016-11-18 15:54:00 |
| X | 1 | S2 | A B | 2016-11-06 13:33:00 |
| A | 2 | S3 | | 2015-05-01 12:48:00 |
+---------------+---------+---------------+------------+---------------------+
私は
SELECT
id_individual,
project,
MAX(Surveydatetime) AS latest
FROM tblSightings
GROUP BY id_individual, project;
で、個々の最新Surveydatetimeを取得する方法を見つけ出すんでした。しかし、私は相当を取得する方法を見つけ出すことはできません"id_survey"の列が "最新"であるため、すべてのid_individualsを目的の結果の関連列のGROUP_CONCATの表示から取得する方法もわかりません。 SELECTにid_surveyを含めると、GROUP BYに入れなければならないので、各個人用に複数の行が再度表示されます。
すべてのヘルプは大歓迎...「サブセットの最大」のためのほとんどの答えは、私がこれまでINNERはそれでSELECT文を使用して登録しようか見つけたが、私はこれがすべてで動作させることはできません!ありがとう!
完璧な、これは動作します!どうもありがとうございました!今私は本当にこの周りに私の頭を包む必要があります、詳細な説明に感謝! – Sam
ありがとう..嬉しいことに! –