私は2つのテーブルevent
とtrans
を持っています。2つの異なるテーブルの列間の平均時間を計算する
CREATE TABLE `event` (
`event_name` varchar(40) DEFAULT NULL,
`user_id` varchar(40) DEFAULT NULL,
`time` timestamp
);
CREATE TABLE `trans` (
`item_id` varchar(40) DEFAULT NULL,
`quantity` int(11) DEFAULT NULL,
`price` decimal(10,0) DEFAULT NULL,
`user_id` varchar(40) DEFAULT NULL,
`time` timestamp
)
はイベントテーブル(複数のユーザーの訪問)の値を仮定します
|visit |a1 |2016-09-14 22:48:14 |
|visit |a2 |2016-09-14 22:48:28 |
|visit |a3 |2016-09-14 22:48:45 |
|visit |a1 |2016-09-15 15:10:39 |
|visit |a2 |2016-09-15 15:11:08 |
|visit |a1 |2016-09-15 15:12:34 |
とトランステーブル
|i1 |1 |100 |a1 |2016-09-15 15:12:22 |
|i2 |2 |100 |a2 |2016-09-15 15:13:17 |
|j1 |1 |140 |a1 |2016-09-15 16:12:22 |
|j4 |3 |150 |a3 |2016-09-15 16:13:17 |
のために、私は最初の訪問の間の平均時間を見つけようとしていますユーザー間での最初の購入。
SELECT trans.user_id , event.time, trans.time as TransTime, AVG(TIMESTAMPDIFF(second,event.time,trans.time))
FROM event JOIN trans
ON trans.user_id = event.user_id and event.time < trans.time
GROUP BY trans.user_id;
ここで何か不足しているような気がします。これは常に最初の訪問と最初の取引を選択しますか? また、初めて訪問して購入するにはどうすればよいですか?
あなたはそれが質問にワークアウトに我々はすべてのために、より明確になり、予想される結果を提供することができます。 – Susang
@Suraz私は最初の訪問、最初の購入、そして2回の訪問と購入の平均時間を見つけることを試みています。 –