私はSQLを初めて使用しており、以下のクエリを作成する方法を見つけることができませんでした。確かに、私はかなり基本的な表現を見逃していますが、私はそれを自分で見つけることができませんでした。SQL - グループのセッションログのエントリとセッションの開始時間でグループを注文
私はアプリケーションログエントリを格納するために使用される以下の表を持っています。各エントリには、記録のタイムスタンプ、そのエントリを作成したアプリケーションの識別子、アプリケーションが実際に実行したアクション、およびそのアプリケーションインスタンスの特定のセッションの一意のIDがあります。この例では
item_id item_datetime app action session_id 1 2011-06-20 19:01:04 a start 23B6C531-6D38-4E47-A887-10B945B48BD9 2 2011-06-20 19:01:05 b start 7E6D0F55-4280-46DF-A829-F6821FF028D5 3 2011-06-20 19:03:45 b job 7E6D0F55-4280-46DF-A829-F6821FF028D5 4 2011-06-20 19:09:33 a job 23B6C531-6D38-4E47-A887-10B945B48BD9 5 2011-06-20 19:27:00 a quit 23B6C531-6D38-4E47-A887-10B945B48BD9 6 2011-06-20 19:50:00 c start 12345678-1234-4321-1234- 7 2011-06-20 19:50:01 c quit 12345678-1234-4321-1234- 8 2011-06-20 19:50:22 b quit 7E6D0F55-4280-46DF-A829-F6821FF028D5
は、同時に実行される3つの異なるアプリケーション "A"、 "B" および "C"、他人と重なる各セッションがあります。私が必要とするのは、セッションによってグルーピングされたリストであり、セッション(結果のグループ)はセッションの開始時間順に並べる必要があります。 は、上記の例のテーブルでは、私は結果の下に期待:
item_id item_datetime app action session_id 1 2011-06-20 19:01:04 a start 23B6C531-6D38-4E47-A887-10B945B48BD9 4 2011-06-20 19:09:33 a job 23B6C531-6D38-4E47-A887-10B945B48BD9 5 2011-06-20 19:27:00 a quit 23B6C531-6D38-4E47-A887-10B945B48BD92 2011-06-20 19:01:05 b start 7E6D0F55-4280-46DF-A829-F6821FF028D5 3 2011-06-20 19:03:45 b job 7E6D0F55-4280-46DF-A829-F6821FF028D5 8 2011-06-20 19:50:22 b quit 7E6D0F55-4280-46DF-A829-F6821FF028D5
6 2011-06-20 19:50:00 c start 12345678-1234-4321-1234- 7 2011-06-20 19:50:01 c quit 12345678-1234-4321-1234-
私がすることによって順序とすることで、グループを試してみましたが、問題は、結果のソートがSESSION_ID年代のアルファベット順に基づいていることである - しかし、これではありません私が必要とするのは、セッションIDの一意性は重要であり、その "価値"は重要ではありません。
どのようなデータベースですか? –
セッションIDの一意性、つまり、order by orderを使用するとアルファベット順にソートされますが、目的の結果rtを得ることはどういう意味ですか?つまり、3つのセッションIDが一緒になると、オーダーに時間を追加すると時間がソートされます – Balanivash
これはMySQLサーバーのMyISAMタイプのテーブルです。 – cactusdev